IT柠檬

Web 优化script link load

2018-10-26  本文已影响9人  Dannn_Y

async && defer

<script src="script.js"></script>

没有 defer 或 async,浏览器会立即加载并执行指定的脚本,“立即”指的是在渲染该 script 标签之下的文档元素之前,也就是说不等待后续载入的文档元素,读到就加载并执行。

async

<script async src="script.js"></script>

有 async,加载和渲染后续文档元素的过程将和 script.js 的加载与执行并行进行(异步)。

defer

<script defer src="myscript.js"></script>

有 defer,加载后续文档元素的过程将和 script.js 的加载并行进行(异步),但是 script.js 的执行要在所有元素解析完成之后,DOMContentLoaded 事件触发之前完成。

web_defer.png

Nuxt 添加defer

{ src: 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js', defer: true }

总结

prefetch

MDN 解释 prefetch

link prefetch 是一种浏览器机制,其利用浏览器空闲时间来下载或预取用户在不久的将来可能访问的文档。页面向浏览器提供一组预取提示,并在浏览器完成当前页面的加载后开始静默的拉取执行的文档并将其存储在缓存中。当用户访问其中一个预取文档时,便可以快速的从浏览器缓存中得到

预加载Link prefetch写法

HTML5页面资源预加载/预读取功能是通过Link标记实现的,将rel属性指定为prefetch,在href属性指定要加载的资源地址。

<link rel="prefetch" href="/images/big.jpeg">

prefetch在什么情况下使用

预加载注意事项


参考链接

H5页面预加载Link prefetch加速页面

defer和async区别

defer && async

上一篇 下一篇

猜你喜欢

热点阅读