900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > js延迟加载的方式有哪些 – CSS – 前端 css如何设置两个状态栏

js延迟加载的方式有哪些 – CSS – 前端 css如何设置两个状态栏

时间:2022-09-27 18:57:23

相关推荐

js延迟加载的方式有哪些 – CSS – 前端 css如何设置两个状态栏

js延迟加载的方式有哪些?

js的延迟加载有助于提高页面的加载速度

script 标签

1.defer属性

<script src=”file.js” defer> </script>

如果script标签设置了该属性,则浏览器会异步的下载该文件并且不会影响到后续DOM的渲染;如果有多个设置了defer的script标签存在,则会按照顺序执行所有的script;defer脚本会在文档渲染完毕后,DOMContentLoaded事件调用前执行。

文档解析时,遇到设置了defer的脚本,就会在后台进行下载,但是并不会阻止文档的渲染,当页面解析渲染完毕后。会等到所有的defer脚本加载完毕并按照顺序执行,执行完毕后会触发DOMContentLoaded事件。

2.async属性

async的设置,会使得script脚本异步的加载并在允许的情况下执行async的执行,并不会按着script在页面中的顺序来执行,而是谁先加载完谁执行。

需要注意:DOMContentLoaded事件的触发并不受async脚本加载的影响,在脚本加载完之前,就已经触发了DOMContentLoaded。

async脚本会在加载完毕后执行。async脚本的加载不计入DOMContentLoaded事件统计。

async script是有可能在DOMContentLoaded事件之前就执行的

link标签

rel属性值:preload

<link rel=”preload” href=”main.js” as=”script”>

<link> 元素的 rel 属性的属性值preload能够让你在你的HTML页面中 <head>元素内部书写一些声明式的资源获取请求,可以指明哪些资源是在页面加载完成后即刻需要的。对于这种即刻需要的资源,你可能希望在页面加载的生命周期的早期阶段就开始获取,在浏览器的主渲染机制介入前就进行预加载。这一机制使得资源可以更早的得到加载并可用,且更不易阻塞页面的初步渲染,进而提升性能。

预加载的好处可以更清晰直观的得到展示,在随后的渲染过程中,这些资源得到有效使用。对于更大的文件来说,也是如此。

rel属性值:prefetch

<link rel=”prefetch”> 已经被许多浏览器支持了相当长的时间,但它是意图预获取一些资源,以备下一个导航/页面使用(比如,当你去到下一个页面时)。这很好,但对当前的页面并没有什么助益。此外,浏览器会给使用prefetch的资源一个相对较低的优先级——与使用preload的资源相比。毕竟,当前的页面比下一个页面相对更加重要

动态创建script

大家可以在一些页面回调(例如window.onload)或者声明周期动态创建script 标签,并添加到页面以达到异步的效果。

把script脚本放到页面最后

把script 脚本放到页面最后不会阻塞页面渲染。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。