站長資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        script標(biāo)簽一般寫在html的什么位置

        script標(biāo)簽的位置:1、放在head標(biāo)簽內(nèi)部,瀏覽器解析HTML,解析到script標(biāo)簽時,會先下載完所有script,再往下解析其他的HTML;因此會使網(wǎng)頁內(nèi)容呈現(xiàn)滯后,用戶體驗差。2、放在body標(biāo)簽內(nèi)部,瀏覽器會先解析完整個HTML頁面,再下載并解析js。3、放在body閉標(biāo)簽之后,瀏覽器會忽略之前的“”,所以實際效果和寫在body閉合標(biāo)簽之前沒有區(qū)別。

        script標(biāo)簽一般寫在html的什么位置

        前端(vue)入門到精通課程:進(jìn)入學(xué)習(xí)

        本教程操作環(huán)境:windows7系統(tǒng)、HTML5版、Dell G3電腦。

        一般script標(biāo)簽會被放在頭部或尾部,頭部就是head標(biāo)簽里,尾部就是body里,也有放在body閉合標(biāo)簽之后。

        1、script標(biāo)簽放在head標(biāo)簽內(nèi)部

        <head>     <title>獲取DOM元素</title>     <script>         var myElement = document.getElementById("atag");         console.log(myElement);     </script> </head> <body>     <div id="atag">         <p>一個標(biāo)簽</p>     </div> </body>

        打印結(jié)果:

        script標(biāo)簽一般寫在html的什么位置
        當(dāng)script標(biāo)簽放在head標(biāo)簽里時,瀏覽器解析HTML,解析到script標(biāo)簽時,會先下載完所有script,再往下解析其他的HTML。在瀏覽器下載js時,是不能多個js一起下載的,且瀏覽器下載js時,會阻塞解析其他的HTML。因此,將script標(biāo)簽放在頭部,會使網(wǎng)頁內(nèi)容呈現(xiàn)滯后,用戶體驗差。

        2、script標(biāo)簽放在body標(biāo)簽內(nèi)部

        <body>     <div id="atag">         <p>一個標(biāo)簽</p>     </div> <script>     var myElement = document.getElementById("atag");     console.log(myElement); </script> </body>

        script標(biāo)簽一般寫在html的什么位置

        將script標(biāo)簽放在body尾部,瀏覽器會先解析完整個HTML頁面,再下載js,這樣的話,如果js執(zhí)行出錯了,最起碼頁面中的元素還可以加載出來,因為DOM文檔是從上往下的順序執(zhí)行的。 但是對于一些高度依賴于js的網(wǎng)頁,這樣就會顯得很慢。

        3、script標(biāo)簽放在body閉標(biāo)簽之后

        <body>     <div id="atag">         <p>一個標(biāo)簽</p>     </div> </body> <script>     var myElement = document.getElementById("atag");     console.log(myElement); </script>

        script標(biāo)簽一般寫在html的什么位置

        雖然放在body閉合標(biāo)簽之前和之后的打印結(jié)果是一樣的,但是從HTML 2.0起放在body閉標(biāo)簽之后就是不合標(biāo)準(zhǔn)的。之所以瀏覽器不會報錯,是因為如果在body標(biāo)簽之后再出現(xiàn)script或任何元素的開始標(biāo)簽,都是prase error(語法錯誤),瀏覽器會忽略之前的</body>,即視作仍舊在body內(nèi)部,所以實際效果和寫在body閉合標(biāo)簽之前是沒有區(qū)別的。

        怎樣實現(xiàn)邊解析頁面邊下載js呢?

        asyncdefer

        async

        async的設(shè)置,會使得script腳本異步的加載并在允許的情況下執(zhí)行,但是并不會按照在script在頁面中的順序來執(zhí)行,而是誰先加載完誰執(zhí)行。

        <script async src="/script01.js"></script> <script async src="/script02.js"></script>

        如果script01.js較大,下載慢,則會導(dǎo)致script02.js可能先于script01.js執(zhí)行。

        defer

        defer的設(shè)置,會是瀏覽器異步的下載該文件并且不會影響到DOM的渲染,如果有多個設(shè)置了defer的script標(biāo)簽存在,則會按照順序執(zhí)行所有的script,即先下載script01.js,再下載script02.js

        【推薦學(xué)習(xí):javascript視頻教程】

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 国产精品手机在线观看你懂的| 中文字幕九七精品乱码| 亚洲国产精品无码av| 隔壁老王国产在线精品| 国产精品久久久久久福利漫画| 中文字幕精品一区二区三区视频| 精品久久久久久无码人妻蜜桃 | 国产精品成人免费观看| 国产探花在线精品一区二区| 亚洲无码精品浪潮| 欧美精品高清在线xxxx| 国产亚洲精品国看不卡| 国产成人精品亚洲精品| 国产在线拍揄自揄视精品不卡| 国产精品免费观看调教网| 少妇人妻无码精品视频| 亚洲精品永久在线观看| 四虎永久在线精品免费一区二区 | 91po国产在线精品免费观看| 国内精品在线视频| 国产92成人精品视频免费| 91精品国产色综合久久| 69SEX久久精品国产麻豆| 国产麻豆精品久久一二三 | 精品成人免费自拍视频| 97精品国产手机| 成人国产精品免费视频| 国产精品无码av在线播放| 国产亚洲精品a在线无码| 精品人妻码一区二区三区| 国产在线精品一区二区中文| 国产精品成人在线| 亚洲第一精品福利| 国产精品麻豆VA在线播放| 国语自产精品视频在线观看| 久久精品成人免费国产片小草| 欧美精品国产一区二区三区| 一区二区国产精品| 久久久久国产精品熟女影院 | 99re热视频这里只精品| 国产夫妇精品自在线|