几年前,有经验的程序员总是让我们将
很明显,现在浏览器有了更加酷的兼容方式,这篇文章,俺将跟大家一起来学习script标签的async和defer新特性,探讨script应该放在哪里更好。
页面加载方式
在我们讨论
当浏览器加载带有
获取html页面(如index.html)
开始解析HTML
解析器遇到引用外部脚本
浏览器请求脚本文件,同时解析器阻塞并停止解析页面上其他的HTML
一段时间后,脚本被下载并随后执行
解析器将继续解析HTML文档的剩余部分
步骤4会导致不良的用户体验,您的网站基本上会停止加载,没有任何响应,直到您下载了所有脚本。
如果你的脚本文件很大,那么对用户体验的影响可以说是致命的。
为什么会发生这种情况?
任何脚本都可以通过document.write()或其他DOM操作插入自己的HTML。 这意味着解析器必须等到脚本被下载并执行后,才能安全地解析文档的其余部分。 毕竟,脚本可能已经在文档中插入了自己的HTML。
但是,大多数
My PageWelcome back, user