js加载
来源:互联网 发布:天津相声广播网络直播 编辑:程序博客网 时间:2024/06/06 09:07
传统方法
在 HTML 网页中,浏览器通过
<!-- 页面内嵌的脚本 --><script type="application/javascript"> // module code</script><!-- 外部脚本 --><script type="application/javascript" src="path/to/myModule.js"></script>
上面代码中,由于浏览器脚本的默认语言是 JavaScript,因此type=”application/javascript”可以省略。
默认情况下,浏览器是同步加载 JavaScript 脚本,即渲染引擎遇到<script>
标签就会停下来,等到执行完脚本,再继续向下渲染。如果是外部脚本,还必须加入脚本下载的时间。
如果脚本体积很大,下载和执行的时间就会很长,因此造成浏览器堵塞,用户会感觉到浏览器“卡死”了,没有任何响应。这显然是很不好的体验,所以浏览器允许脚本异步加载,下面就是两种异步加载的语法。
<script src="path/to/myModule.js" defer></script><script src="path/to/myModule.js" async></script>
上面代码中,<script>
标签打开defer或async属性,脚本就会异步加载。渲染引擎遇到这一行命令,就会开始下载外部脚本,但不会等它下载和执行,而是直接执行后面的命令。
defer与async的区别是:前者要等到整个页面正常渲染结束,才会执行;后者一旦下载完,渲染引擎就会中断渲染,执行这个脚本以后,再继续渲染。一句话,defer是“渲染完再执行”,async是“下载完就执行”。另外,如果有多个defer脚本,会按照它们在页面出现的顺序加载,而多个async脚本是不能保证加载顺序的。
阅读全文
0 0
- js加载
- js加载
- JS动态加载JS
- js动态加载js
- js预加载/延迟加载
- JS延迟加载(setTimeout) JS最后加载
- JS加载顺序(优化JS加载)
- js动态加载js文件
- js动态加载js 同步
- Js 动态加载JS CSS
- 【JS】使用JS动态加载
- 加载js判断
- 动态加载JS
- js加载效果
- 动态加载js
- 控制JS的加载
- 跨域JS加载
- 动态加载js文件
- 文本自动换行
- 狂降1000!苹果最悲情产品大降价!
- vue props 取名问题
- Java 21:Spring 4(Intelij IDEA下的SpringMVC环境搭建)
- List中的set方法和add方法, 以及排序操作
- js加载
- I/O多路转接之poll
- 百度地图API示例之添加/删除工具条、比例尺控件
- Leetcode(16)
- WebView性能、体验分析与优化
- 开博客之初心
- 和菜鸟一起学电子小玩意之四轴飞行器原理
- 设计模式---访问者模式
- PuTTY (3) Serial port connection