日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

script到底应该放在哪里

發(fā)布時(shí)間:2025/3/19 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 script到底应该放在哪里 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
轉(zhuǎn)自http://blog.csdn.net/ybdesire/article/details/49284699 一般script標(biāo)簽會(huì)被放在頭部或尾部。頭部就是<head>里面,尾部一般指<body>里[4-5]。將script放在<head>里,瀏覽器解析HTML,發(fā)現(xiàn)script標(biāo)簽時(shí),會(huì)先下載完所有這些script,再往下解析其他的HTML。討厭的是瀏覽器在下載JS時(shí),是不能多個(gè)JS并發(fā)一起下載的。不管JS是不來(lái)來(lái)自同一個(gè)host,瀏覽器最多只能同時(shí)下載兩個(gè)JS,且瀏覽器下載JS時(shí),就block掉解析其他HTML的工作[1]。將script放在頭部,會(huì)讓網(wǎng)頁(yè)內(nèi)容呈現(xiàn)滯后,導(dǎo)致用戶感覺(jué)到卡。所以yahoo建議將script放在尾部,這樣能加速網(wǎng)頁(yè)加載。將script放在尾部的缺點(diǎn),是瀏覽器只能先解析完整個(gè)HTML頁(yè)面,再下載JS。而對(duì)于一些高度依賴(lài)于JS的網(wǎng)頁(yè),就會(huì)顯得慢了。所以將script放在尾部也不是最優(yōu)解,最優(yōu)解是一邊解析頁(yè)面,一邊下載JS。所以[2]提出了一種更modern的方式:使用async和defer。80%的現(xiàn)代瀏覽器都認(rèn)識(shí)async和defer屬性[3],這兩個(gè)屬性能讓瀏覽器做到一邊下載JS(還是只能同時(shí)下載兩個(gè)JS),一邊解析HTML。他的優(yōu)點(diǎn)不是增加JS的并發(fā)下載數(shù)量,而是做到下載時(shí)不block解析HTML。 <script type="text/javascript" src="path/to/script1.js" async></script> <script type="text/javascript" src="path/to/script2.js" async></script> 帶async屬性的script會(huì)異步執(zhí)行,只要下載完就執(zhí)行,這會(huì)導(dǎo)致script2.js可能先于script1.js執(zhí)行(如果script2.js比較大,下載慢)。defer就能保證script有序執(zhí)行,script1.js先執(zhí)行,script2.js后執(zhí)行。 結(jié)論 1. [2]認(rèn)為,如果可以不考慮支持<IE9的IE,最好的做法是將script標(biāo)簽放在head中,并使用async/defer屬性。這樣瀏覽器就能一邊下載JS,一邊解析其他的HTML。 2. Google自己的代碼script放的也有點(diǎn)亂,有的放在</body>后面[6],有的放在<body>里面[7],還有的放在<head>里面[8]。總體來(lái)說(shuō),放在<body>里其實(shí)是最常見(jiàn)的做法。 3. 本文只討論script的位置,至于link和style,還是放在head里的做法比較常見(jiàn)。link也是要下載CSS的啊,為毛不考慮下載CSS阻塞HTML解析的問(wèn)題呢?其實(shí),一般情況下,JS和CSS,放在head和放在body區(qū)別不大。CSS的link放在body也是可以的,只是可能導(dǎo)致頁(yè)面暫時(shí)沒(méi)有樣式[9-10]。 參考 [1] https://developer.yahoo.com/performance/rules.html#js_bottom= [2] http://stackoverflow.com/questions/436411/where-is-the-best-place-to-put-script-tags-in-html-markup [3] http://caniuse.com/#search=defer [4] https://github.com/IgorMinar/foodme/blob/master/app/index.html [5] https://github.com/GoogleChrome/wReader-app/blob/master/index.html [6] https://github.com/GoogleChrome/multi-device/blob/master/_preview.html [7] https://github.com/GoogleChrome/samples/blob/b2668086c25470e107e59f4ffa92dc0c21c63de3/beacon/index.html [8] https://github.com/GoogleChrome/web-audio-samples/blob/gh-pages/samples/audio/adaptive-release.html [9] http://stackoverflow.com/questions/4957446/load-external-css-file-in-body-tag [10] http://stackoverflow.com/questions/1642212/whats-the-difference-if-i-put-css-file-inside-head-or-body 

總結(jié)

以上是生活随笔為你收集整理的script到底应该放在哪里的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。