1)defer属性/ 延迟脚本 (HTML4.01)
作用: 使得脚本执行不受页面构造(自上而下解析)影响。 脚本会被延迟到整个页面都解析完毕后再运行。 相当于告诉浏览器立即下载,但延迟执行。
<script src="src/main.js" defer> </script>
2)async属性/ 异步脚本 (HTML5)
作用: 告诉浏览器立即下载文件,所以最好不要在其中有DOM操作。如有两个脚本使用async,其并不能保证按照文档流顺序执行。
<script src="one.js" async></script> <script src="two.js" async></script>
如以上两个脚本,浏览器可能会先执行two,再执行one。 所以,如果两者存在依赖关系,最好不要用async属性
3) noscript 标签
作用: 当浏览器不支持脚本,或者浏览器支持但被禁用后。标签内容会被展示。
<noscript>
<p>当页面不支持或被禁用脚本时, 标签内容展示</p>
</noscript>