国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

詳解關(guān)于html,css,js三者的加載順序問題

2024-05-06 15:40:52
字體:
供稿:網(wǎng)友
<head lang="en">  <meta charset="utf-8">  <title></title>  <link rel="stylesheet" href="css/*.css" rel="external nofollow" >  <script src="js/*.js></script></head>

DOM文檔的加載順序是由上而下的順序加載;

1、DOM加載到link標(biāo)簽

css文件的加載是與DOM的加載并行的,也就是說,css在加載時Dom還在繼續(xù)加載構(gòu)建,而過程中遇到的css樣式或者img,則會向服務(wù)器發(fā)送一個請求,待資源返回后,將其添加到dom中的相對應(yīng)位置中;

2、DOM加載到script標(biāo)簽

由于js文件不會與DOM并行加載,因此需要等待js整個文件加載完之后才能繼續(xù)DOM的加載,倘若js腳本文件過大,則可能導(dǎo)致瀏覽器頁面顯示滯后,出現(xiàn)“假死”狀態(tài),這種效應(yīng)稱之為“阻塞效應(yīng)”;會導(dǎo)致出現(xiàn)非常不好的用戶體驗;

而這個特性也是為什么在js文件中開頭需要$(document).ready(function(){})或者(function(){})或者window.onload,即是讓DOM文檔加載完成之后才執(zhí)行js文件,這樣才不會出現(xiàn)查找不到DOM節(jié)點等問題;

js阻塞其他資源的加載的原因是:瀏覽器為了防止js修改DOM樹,需要重新構(gòu)建DOM樹的情況出現(xiàn);

3、解決方法

前提,js是外部腳本;

在script標(biāo)簽中添加 defer=“ture”,則會讓js與DOM并行加載,待頁面加載完成后再執(zhí)行js文件,這樣則不存在阻塞;

在scirpt標(biāo)簽中添加 async=“ture”,這個屬性告訴瀏覽器該js文件是異步加載執(zhí)行的,也就是不依賴于其他js和css,也就是說無法保證js文件的加載順序,但是同樣有與DOM并行加載的效果;

同時使用defer和async屬性時,defer屬性會失效;

可以將scirpt標(biāo)簽放在body標(biāo)簽之后,這樣就不會出現(xiàn)加載的沖突了。

以上所述是小編給大家介紹的關(guān)于html,css,js三者的加載順序問題詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對錯新站長站網(wǎng)站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 监利县| 连江县| 济南市| 乌恰县| 紫阳县| 孝感市| 镇雄县| 昌宁县| 沙坪坝区| 浦北县| 云和县| 卓尼县| 吐鲁番市| 和田市| 牡丹江市| 潜山县| 苏尼特右旗| 叶城县| 宜川县| 禹城市| 五原县| 蒙山县| 屯留县| 南投县| 乾安县| 上高县| 黑水县| 托克托县| 上栗县| 龙游县| 汝州市| 内乡县| 集贤县| 阆中市| 利辛县| 桂东县| 衡阳县| 堆龙德庆县| 张家界市| 桃江县| 普兰店市|