网站登陆怎么做,网络营销师是做什么的,婚礼策划公司排名,有免费网站推荐吗前言#xff1a;正常dom解析 中遇到script标签 #xff0c;会暂停主线程 去下载js#xff0c;拿到资源后#xff0c;主线程再执行js。 那么主线程在等待网络线程下载这个空闲很浪费 解决方案#xff1a; script标签增加属性 async defer 1.async
script src./i… 前言正常dom解析 中遇到script标签 会暂停主线程 去下载js拿到资源后主线程再执行js。 那么主线程在等待网络线程下载这个空闲很浪费 解决方案 script标签增加属性 async defer 1.async
script src./index.js async/script
异步下载js文件不会阻止DOM解析会在下载完成后立即执行js文件。
2.defer
script src./index.js defer/script异步下载js文件不会阻止DOM解析但是会在DOM解析完后才会执行下载的js文件js文件会在DOMContentLoaded事件调用前执行。
如果有多个设置了defer的script标签存在则会按照顺序执行所有的script。
如果async和defer同时存在async优先级更高。
总结上面两个资源提示符都是下载完立即执行代码的 script 3.preload 针对当前页面使用的资源 不执行 立即下载 link标签
link relpreload asscript hreffoo.js
link relpreload asstyle hrefbar.css
预加载让浏览器提前加载指定资源(加载后并不执行) 需要执行时再执行一旦启用后便会告知浏览器应该尽快的加载某个资源如果提取的资源3s内未在当前使用在谷歌开发工具将会触发警告消息。
4.prefetch浏览器空闲下载 后面要用的 不执行代码 link标签
link relprefetch hrefdemo.html告诉浏览器这个资源将会在未来的某个时刻用到浏览器会在空闲时下载它。