script標籤裏的defer屬性

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

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

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

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

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

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

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

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

  精髓的話,就是js文件與dom結構一塊兒加載,可是js文件會等html渲染完以後再執行。io

最後再說一下,之因此用defer屬性,是要把js文件在頁頭那裏就引入,可是你要是放在了頁尾,那就不用再使用這個屬性。不然就是多此一舉了。渲染

 

 

PS:w3school是否是已經停更了啊?之後仍是去菜鳥教程看吧。。。

相關文章
相關標籤/搜索