html文件执行顺序,网页的加载和执行顺序?
根據你的樣本,
$(document).ready(function(){
$("#img").attr("src",?"kkk.png");
});
????
執行流程大致如下:下載HTML文檔
HTML文檔的解析開始
HTML解析達到
HTML解析達到
HTML解析達到
abc.css被下載和解析
HTML解析達到
分析和定義內部css規則。
HTML解析達到
解析并運行內部Javascript。
HTML解析達到
abc.jpg下載并顯示
HTML解析達到
HTML文檔結束解析
請注意,由于瀏覽器的行為,下載可能是異步和非阻塞的。例如,在Firefox中,這個設置限制了每個域同時請求的數量。
另外,取決于組件是否已經緩存,組件可能不會在最近的請求中再次被請求。如果該組件已被緩存,則該組件將從緩存中加載,而不是實際的URL。
當解析結束,文檔準備就緒并加載時,事件onload被解雇了。所以當onload被解雇,$("#img").attr("src","kkk.png");都跑了。因此:文檔準備就緒,啟動onload。
JavaScript執行命中
$("#img").attr("src", "kkk.png");
kkk.png被下載并加載到
#img
編輯-這一部分詳細闡述了并行或非并行部分:
默認情況下,根據我目前的理解,瀏覽器通常以3種方式運行每個頁面:HTML解析器、Javascript/DOM和CSS。
HTML解析器負責解析和解釋標記語言,因此必須能夠調用其他兩個組件。
例如,當解析器穿過這一行時:a?hypertext?link
解析器將進行3次調用,其中2次調用Javascript,1次調用CSS。首先,解析器將創建該元素并在DOM命名空間中注冊它,以及與該元素相關的所有屬性。其次,解析器將調用將onClick事件綁定到這個特定元素。最后,它將再次調用CSS線程,將CSS樣式應用于此特定元素。
執行是自頂向下和單線程。JavaScript看起來可能是多線程的,但事實是Javascript是單線程的。這就是為什么在加載外部javascript文件時,主HTML頁面的解析會被掛起。
但是,CSS文件可以同時下載,因為CSS規則總是被應用-也就是說元素總是用定義的最新鮮的CSS規則重新繪制-從而使它解除阻塞。
一個元素只有在被解析后才能在DOM中使用。因此,在處理特定元素時,腳本總是放在Window onLoad事件之后或內部。
這樣的腳本將導致錯誤(在jQuery上):
Hello?World因為當腳本被解析時,#mydiv元素仍未定義。相反,這樣做是可行的:
Hello?World或
Hello?World總結
以上是生活随笔為你收集整理的html文件执行顺序,网页的加载和执行顺序?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android源生setting华为,A
- 下一篇: 手机html检测蓝牙打印机,打印机手机确