script標簽里的defer屬性


入職新公司,看代碼的時候注意到有的script標簽中有一個defer屬性,查了一下。在這里分享出來。

需要注意的有三點,其中前兩點是在錯誤中分辨出來的:

錯誤來源:http://www.w3school.com.cn/tags/att_script_defer.asp

1,defer屬性只有IE支持;應該說是在主流瀏覽器都是支持的;

http://www.runoob.com/tags/att-script-defer.html 中說了,在所有主流瀏覽器都支持defer屬性;在Chrome,FF上親測可用。

2,defer必須用在引入js文件的script標簽中;內嵌在html頁面中的script標簽是不起作用的。

如下圖所示,這樣的用法是錯誤的, 直接報錯誤: Uncaught TypeError: Cannot read property 'firstChild' of null

3,需要明白defer屬性的真正含義,我參考的是http://www.cnblogs.com/neusc/archive/2016/08/12/5764162.html

  精髓的話,就是js文件與dom結構一起加載,但是js文件會等html渲染完之后再執行。

最后再說一下,之所以用defer屬性,是要把js文件在頁頭那里就引入,但是你要是放在了頁尾,那就不用再使用這個屬性。否則就是畫蛇添足了。

 

 

PS:w3school是不是已經停更了啊?以后還是去菜鳥教程看吧。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM