您好,登錄后才能下訂單哦!
1. 知識點
1) JSP頁面代碼的載入順序和執行
a) 當客戶第一次請求JSP頁面時,JSP引擎會通過預處理把JSP文件中的靜態數據(HTML)和動態數據(Java腳本)全
部轉換為Java代碼。這個轉換工作實際上是非常直觀的,對于HTML文本只是簡單地用out.pringln()方法包裹起來,
對于Java腳本只是保留或簡單地處理。
b) JSP引擎把生成的.java文件編譯成Servlet類文件(.class)。對于Tomcat服務器而言,生成的類文件默認的情況下存放
在<Tomcat>\work目錄。
c) 編譯后的class對象被加載到容器中,并根據用戶的請求生成HTML格式的響應頁面。
在執行JSP頁面時,通常可分為兩個時期:轉譯時期(Translation Time)和請求時期(Request Time)。在轉譯時期,JSP網頁被轉譯成Servlet類,然后被編譯成類文件;在請求時期,Servlet類執行后,響應結果至客戶端。
2. JSP頁面中的代碼加載執行順序
1) java是在服務器端運行的代碼,jsp在服務器的servlet里運行,而javascript和html都是在瀏覽器端運
行的代碼。所以加載執行順序是java>jsp>js
2) js在jsp中的加載順序
頁面上的js代碼是html代碼的一部分,所以頁面加載的時候是由上而下加載。所以js加載的順序也就是
頁面中<script>標簽出現的順序。<script>標簽里面的或者是引入的外部js文件的執行順序都是其語
語句出現的順序,其中js執行的過程也是頁面裝載的一部分
3) 在js腳本中定義的全局變量和函數,都可以在后面的腳本中調用。
變量的調用,必須是前面已經聲明了的,否則變量返回的值是undefined。同一段腳本中,函數定義
可以出現在函數的調用后面;若函數的定義和調用在兩個腳本段中,函數調用在函數定義之前就會報
函數未定義錯誤。
4) js中出現ajax的異步加載
由于ajax的異步加載可能會導致語句的執行順序并不是按照語句的出現順序執行的。例如,在頁面初
始加載的時候需要向jsp發送請求來獲得該頁面所需的數據,在ajax成功函數中,對data的操作所需的
時間過長,就會導致在ajax函數外面的confirm與loadTree比data操作后面的語句先執行。最終在
loadTree中使用data的值的時候就為空,此時全局變量openTab_Id就為空。
5) 控制js執行順序
可以使用setTimeout(function(),time);來使function延遲加載。
6) js腳本必須放在head或body里面,不然提示invalid location of tag(script)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。