分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

js异步加载

发布时间:2023-09-06 01:35责任编辑:赖小花关键词:js

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

当浏览器碰到script脚本时,会立即加载并执行指定的脚本(不等后续载入的文档元素)。

解决方案:

1)defer ,只支持IE

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

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

如果你的脚本不会改变文档的内容,可以使用defer属性。

2)async(HTML5的属性)

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

加载和渲染后续文档元素得过程将和script.js的加载与执行并行

从实用角度上讲,首先把所有的脚本都丢到</body>之前是最佳实践,因为对于旧浏览器来说这是唯一的优化选择,此法可保证非脚本的其他一切元素能够以最快的速度得以加载和解析。

总结:

1)defer 和 async 在网络读取(下载)这块都是一样的,都是异步的(相较于HTML解析)

2)它俩的差别在于脚本下载完之后何时执行,显然defer是最接近我们对于应用脚本加载和执行的要求的。

3)关于defer,此图未尽之处在于它是按照加载顺序执行脚本的。

4)async 则是一个乱序执行的主,反正对它来说脚本的加载和执行时紧紧挨着的,所以不管你声明的顺序如何,只要它加载了就会立刻执行。

js异步加载

原文地址:https://www.cnblogs.com/sunqq/p/8242215.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved