全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

JS异步加载的三种实现方式

js加载的缺点:加载工具方法没必要阻塞文档,过多js加载会影响页面效率,一旦网速不好,那么整个网站将等待js加载而不进行后续渲染等工作。 有些工具方法需要按需加载,用到再加载,不用不加载,。

默认正常模式下下,JS是同步加载的,即优先加载JS,只有当JS文件下载完,dom和css才开始加载,当某些时候我们需要JS异步加载,我们可以通过以下方式来设置异步加载,不同情况下选取不同方式即可

1.defer:defer

  1. JS异步下载,dom结构解析完(标签 + 样式(内容不一定下载完))才异步执行 
  2. 仅IE能用
  3. 内部JS也能用该属性
  4. 异步加载js不允许使用document.write,因为document.write会清除文档流,js标签还未加载就会被清除
  5. document.write()可用于初始化页面

2.(h5)async:async(asynchronous) ajax(asynchronous javascript and XML)

  1. JS异步加载,加载完毕后立刻异步执行
  2. IE8及以下不兼容
  3. 内部JS不能用该属性

3.除了以上两种方法,还有一种兼容自己封装的异步加载方式,即动态添加script标签也能实现异步加载。

function asyncLoaded(url,callBack){/*url为js的链接,callBack为url的js中的函数(该函数调用应该写到匿名函数中,如function(){console.log(div.getScrollOffset())})*/
  var script = document.createElement('script');
  script.type = 'text/javascript';
  /*if else 这几句话必须要写到这位置处,不能放最后,因为if中js加载中script.readyState存在好几种状态,
  只有状态改变‘readystatechange'事件才会触发,但现在浏览器加载速度很快,当解析到该事件时JS有可能已经加载完,
  所以事件根本不会触发,所以要写到前面*/
  if(script.readystate){//兼容IE
    script.onreadystatechange = function() {//状态改变事件才触发
      if(script.readyState == 'loaded' || script.readyState == 'complete'){  
        callBack();
        script.onreadystatechange = null;    
      }
    }
  }else{
    script.onload = function(e){
      callBack();
    }
  }    
  script.src = url;
  document.body.appendChild(script);
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# js实现异步加载  # js异步加载  # js异步加载的方式  # JavaScript文件的同步和异步加载的实现代码  # 详解JS异步加载的三种方式  # 浅析JS异步加载进度条  # JavaScript 脚本异步加载的几种实现方法  # 加载  # 写到  # 下载完  # 就会  # 文档  # 有可能  # 才会  # 两种  # 也能  # 我们可以  # 而不  # 还未  # 不能用  # 没必要  # 再加  # 几句话  # 大家多多  # 要写  # 到该  # 按需 


相关文章: 陕西网站制作公司有哪些,陕西凌云电器有限公司官网?  定制建站哪家更专业可靠?推荐榜单揭晓  网站制作大概多少钱一个,做一个平台网站大概多少钱?  公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  建站之星导航菜单设置与功能模块配置全攻略  广州美橙建站如何快速搭建多端合一网站?  济南网站制作的价格,历城一职专官方网站?  微信小程序 五星评分(包括半颗星评分)实例代码  如何用景安虚拟主机手机版绑定域名建站?  如何零基础在云服务器搭建WordPress站点?  免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?  如何在阿里云虚拟服务器快速搭建网站?  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  南宁网站建设制作定制,南宁网站建设可以定制吗?  智能起名网站制作软件有哪些,制作logo的软件?  如何选择最佳自助建站系统?快速指南解析优劣  外汇网站制作流程,如何在工商银行网站上做外汇买卖?  建站之星安装提示数据库无法连接如何解决?  如何正确选择百度移动适配建站域名?  定制建站方案优化指南:企业官网开发与建站费用解析  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  如何快速建站并高效导出源代码?  Android使用GridView实现日历的简单功能  网站制作软件免费下载安装,有哪些免费下载的软件网站?  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  孙琪峥织梦建站教程如何优化数据库安全?  如何在IIS7上新建站点并设置安全权限?  公司门户网站制作流程,华为官网怎么做?  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  ,柠檬视频怎样兑换vip?  网站制作话术技巧,网站推广做的好怎么话术?  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  python的本地网站制作,如何创建本地站点?  h5在线制作网站电脑版下载,h5网页制作软件?  攀枝花网站建设,攀枝花营业执照网上怎么年审?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  建站之星后台管理如何实现高效配置?  清除minerd进程的简单方法  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  建站10G流量真的够用吗?如何应对访问高峰?  建站之星后台密码遗忘如何找回?  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  如何通过IIS搭建网站并配置访问权限?  建站之星ASP如何实现CMS高效搭建与安全管理?  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  建站主机与虚拟主机有何区别?如何选择最优方案?  如何配置IIS站点权限与局域网访问?  如何快速完成中国万网建站详细流程?  如何获取上海专业网站定制建站电话? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。