在浏览器性能上,这可能是所有开发者关心的问题,因为阻塞特性,即运行时,浏览器不会处理其他任务。 但是浏览器不可能只运行一个任务,而是同时只能执行一个任务。
不管代码是内联的还是包含在外部文件中,页面的下载和解析都必须等待脚本完成后才能继续向下执行。 这样做的原因是脚本的执行可能会重新渲染页面 UI。 我们典型的脚本函数如下所示。 喜欢:
当浏览器遇到
这是文件导入的示例。
但是这种写法理论上是没有问题的,但是这里存在性能和体验问题。 上面的代码加载了3个外部文件js页面加载完成后执行,每个文件在加载过程中都会阻塞页面的解析。 浏览器只能等待他们下载并运行我们上面提到的代码后才能继续页面。 最致命的问题是,如果把文件放在最前面,当文件加载缓慢时会出现空白页面,这样用户就看不到页面,更谈不上交互式网页了。 推荐的方式是把所有的文件,包括外部链接文件都挡在标签的底部,减少对整个页面加载的影响。 这里不列举例子。
2.延时脚本
这次
## 标题文字##
如果浏览器不支持defer属性,上述代码的运行顺序为:Delay-》-》 。 如果浏览器支持defer属性,那么运行顺序是:-》-》 。 应该能直观的看出区别。defer标签目前主流浏览器都支持
另外,还有一个必须要提到的属性:async。 用于加载异步脚本,async和defer的相同点是使用并行下载,下载过程中不会出现阻塞。 区别在于执行的时间。 async 在加载完成后自动执行js页面加载完成后执行,而 defer 需要等待页面完成。
3.动态脚本元素
DOM 允许动态创建 HTML 支持的所有内容。 喜欢:
var = .("");.type = "text/";.src = "file1.js"; ._r("头")[0].();
上面的新
当然还有其他的类库,比如LABjs,这里就不一一介绍了。
总结
都会
女忍手游攻略:调教女忍快速提升战力!
2023-04-29 11:01:05 7502玩转烟雨江湖太乙教学攻略:技能详解,教你轻松驾驭江湖!
2023-04-29 11:01:05 800玩转问道手游神魂系统,最新攻略助你获得最强神魂!
2023-04-29 11:01:05 743三国志战略版qq账号能转移吗 qq登录解绑方法
2023-04-29 11:01:05 736玩如龙7手游必备攻略,轻松打败对手!
2023-04-29 11:01:05 662斗破苍穹手游:解锁伙伴攻略大揭秘!
2023-04-29 11:01:05 659三国竞技场自走棋攻略 DOTA2三国竞技场自走棋阵容推荐(附武将羁绊图鉴)
2023-04-29 11:01:05 645犯罪大师追踪怪盗答案 侦探事务所周四4星委托任务答案
2023-04-29 11:01:05 582gta5捏脸数据女神(含男女二次元)2021最新教程
2023-04-29 11:01:05 575百变大侦探失控时空攻略完整版
2023-04-29 11:01:05 567