- 因为在开发中如果css和js文件都是引用外部文件,浏览器都会先把两个文件下载下来。无论谁先下载完毕,都会先执行cssDOM接下来才是构建js脚本,最后再继续构建DOM。所以将link放在script的前面
- 使用内联js,css减少css和js的下载时间。
- webpack等工具对JS,css文件压缩,减少文件的大小。
- 使用async和defer
- 使用CDN等
默认情况下,脚本的下载和执行都是按照文档的顺序执行的,当脚本下载或者是执行的时候HTML就会停止,当脚本执行完毕之后才会进行文档的解析。而async和defer会改变这种默认的行为。
js中的defer,脚本的加载过程和文档的加载过程是异步的,只有当文档解析完毕(HTMLcontentloaded事件发生),js脚本才开始执行。
js中的async,也是脚本的加载过程和文档的加载是异步的,不同点在于,当js下载完毕后,不会执行HTML解析,而是先进行js脚本的执行,执行完毕之后才会继续进行HTML的解析。
CDN:内容分发技术,负载均衡,缓存,动态内容分发。