JavaScript异步编程教程(4)异步的脚本加载
沉沙 2018-10-25 来源 : 阅读 1186 评论 0

摘要:本篇教程介绍了JavaScript异步编程教程(4)异步的脚本加载,希望阅读本篇文章以后大家有所收获,帮助大家对JavaScript的理解更加深入。

本篇教程介绍了JavaScript异步编程教程(4)异步的脚本加载,希望阅读本篇文章以后大家有所收获,帮助大家对JavaScript的理解更加深入。

<

异步的脚本加载

 

问题:

<head>标签里的大脚本会滞压所有页面渲染工作,使页面在脚本加载完毕前一直处于白屏;

<body>标签末尾的大脚本使用户只能看到静态页面,原本应进行渲染的地方却是空的;

 

解决方案:

对脚本分而治之;

负责让页面更好看、更好用的脚本立即加载,可稍后再加载的脚本稍后再加载。

 

HTML5的async/defer属性

 

・<script标签>

  经典型和非阻塞型

 

  理想情况下,脚本的加载应该与文档的加载同时进行,并且不影响DOM的渲染。

  这样,一旦文档就绪就可以运行脚本,因为已经按照<script>标签次序加载了相应脚本。

 

  大多数浏览器支持一个简单的解决方案:

  在<head>标签里放入延迟脚本

  <script defer src = “deferredScript.js”>

  defer属性:马上开始加载该脚本,但是请等到文档就绪且正在运行的defer脚本结束后再运行它。

  不足:并非所有浏览器都支持defer;因此,使用defer应将所有延迟脚本代码都封装在例如jQuery的$(document).ready中。

 

  脚本的完全并行化

  async属性

  脚本会以任意次序运行,只要JavaScript引擎可用就立即运行,无论文档就绪与否。

  → 对于独立的脚本,异步脚本是性能提升的好方法;

  同时支持defer和async的浏览器中,如果脚本属性defer和aysnc都用了的时候,async会覆盖掉defer。

 

  可编程的脚本加载

 

  浏览器API层面的方法:

  生成Ajax请求并用eval函数处理响应;

  向DOM插入<script>标签。

 

  yepnope的条件加载

  yepnope是一个简单轻量级的脚本加载库,其设计目标是服务于最常见的动态脚本加载。

  yepnope({

      load: ‘XX.js’,

      callback: function() {

         …

      }

  });    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标WEB前端JavaScript频道!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程