站長資訊網(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號
        主站蜘蛛池模板: 四虎国产精品永久在线无码| 久久夜色精品国产网站| 日韩精品一区二区三区影院| 国产91大片精品一区在线观看| 无码精品人妻一区二区三区免费| 色综合久久综精品| 精品爆乳一区二区三区无码av| 无码AV动漫精品一区二区免费| 99久久国产主播综合精品| 99爱在线精品免费观看| 一本一本久久A久久综合精品 | 精品国产_亚洲人成在线高清| 中文字幕精品一区二区精品| 国产精品部在线观看| 国产精品欧美亚洲韩国日本| 亚洲国产精品福利片在线观看| 精品国内自产拍在线观看 | AAA级久久久精品无码片| 在线中文字幕精品第5页| 久久久久久久亚洲精品| 国产欧美一区二区精品性色99| 精品国产福利久久久| 国产精品三级国产电影| 久久免费的精品国产V∧| 亚洲国产精品无码久久一区二区 | 亚洲国产精品欧美日韩一区二区| 99re久久精品国产首页2020| 精品亚洲成a人片在线观看| 无码精品人妻一区二区三区中| 中文字幕av日韩精品一区二区| 全国精品一区二区在线观看| 久久久久无码精品国产app| 久久精品国产欧美日韩| 精品多毛少妇人妻AV免费久久| 国产在线观看高清精品| 国产欧美日韩综合精品二区| 国产亚洲精品无码专区| 国产亚洲精品成人a v小说| 久久精品中文字幕一区| 欧美精品一区二区三区免费| 无码日韩精品一区二区人妻|