html dom JS判斷頁(yè)面是否加載完成?
JS判斷頁(yè)面是否加載完成?1. HTML和JS是并行下載的嗎?如果您想詢問(wèn)瀏覽器是否會(huì)在加載HTML頁(yè)面之前加載外部JS,那么可以接受節(jié)點(diǎn).js編寫一個(gè)請(qǐng)求處理程序,并嘗試在多次刷新之間設(shè)置一個(gè)時(shí)間間
JS判斷頁(yè)面是否加載完成?
1. HTML和JS是并行下載的嗎?如果您想詢問(wèn)瀏覽器是否會(huì)在加載HTML頁(yè)面之前加載外部JS,那么可以接受節(jié)點(diǎn).js編寫一個(gè)請(qǐng)求處理程序,并嘗試在多次刷新之間設(shè)置一個(gè)時(shí)間間隔。
2. JS的下載是否阻止了頁(yè)面的呈現(xiàn),或者JS的執(zhí)行是否阻止了頁(yè)面的呈現(xiàn),或者兩者都阻止了頁(yè)面的DOM樹?在解析非異步外部JS時(shí),它將阻塞DOM樹,并且在加載和執(zhí)行DOM樹之前不會(huì)解析DOM樹。
3. 腳本標(biāo)簽是放在頭上還是放在體上都會(huì)影響JS的下載開始時(shí)間或執(zhí)行開始時(shí)間。如果我們不考慮HTTP并發(fā)請(qǐng)求數(shù)的限制,忽略接收頁(yè)面響應(yīng)體的時(shí)間消耗,那么外部腳本也不會(huì)(太)影響預(yù)解析瀏覽器中任何地方的加載開始時(shí)間。需要注意的是,雖然加載是并行的,但是JS會(huì)阻止DOM樹解析,所以如果將script[SRC]放在頭部,它會(huì)阻止第一次屏幕呈現(xiàn),最好放在主體的末尾。
4. CSS、圖片等外部資源的下載是否與HTML、JS的下載并行是相當(dāng)復(fù)雜的?;镜闹笇?dǎo)原則是瀏覽器將盡量并行化所有的加載并盡快完成加載,同時(shí)還要考慮并發(fā)請(qǐng)求數(shù)的限制。如前一篇文章所述,并行加載、DOM樹解析、JS執(zhí)行和第一屏呈現(xiàn)都是串行的。瀏覽器將盡快完成加載,這并不意味著這些元素的放置順序不重要。