JS的异步加载

为什么要异步加载

浏览器下载除JS外的资源时,会并行下载,以提高性能。但下载JS脚本时,会禁止并行下载(称为脚本阻塞Scripts Block Downloads)。浏览器遇到JS时,必须等JS下载,解析,执行完后,才能继续并行下载下一个资源。原因是JS可能会改变页面或改变JS间的依赖关系,例如A.js中用document.write改变页面,B.js依赖于A.js。因此要严格保证顺序,不能并行下载。

因此不推荐将JS放到标签里,浏览器遇到

1.async属性是HTML5新增属性,需要Chrome、FireFox、IE9+浏览器支持
2.async属性规定一旦脚本可用,则会异步执行
3.async属性仅适用于外部脚本
4.此方法不能保证脚本按顺序执行

Script defer

script标签里可以设置defer,表示延迟加载脚本:


1.defer属性规定是否对脚本执行进行延迟,直到页面加载为止
2.如果脚本不会改变文档的内容,可将defer属性加入到

你可能感兴趣的:(JS的异步加载)