全网整合营销服务商

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

免费咨询热线: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 脚本异步加载的几种实现方法  # 加载  # 写到  # 下载完  # 就会  # 文档  # 有可能  # 才会  # 两种  # 也能  # 我们可以  # 而不  # 还未  # 不能用  # 没必要  # 再加  # 几句话  # 大家多多  # 要写  # 到该  # 按需 


相关文章: 太原网站制作公司有哪些,网约车营运证查询官网?  定制建站流程步骤详解:一站式方案设计与开发指南  如何设置并定期更换建站之星安全管理员密码?  建站之星体验版:智能建站系统+响应式设计,多端适配快速建站  定制建站哪家更专业可靠?推荐榜单揭晓  c# await 一个已经完成的Task会发生什么  建站之星导航配置指南:自助建站与SEO优化全解析  如何彻底卸载建站之星软件?  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  宁波免费建站如何选择可靠模板与平台?  如何用虚拟主机快速搭建网站?详细步骤解析  如何快速搭建自助建站会员专属系统?  免费ppt制作网站,有没有值得推荐的免费PPT网站?  内部网站制作流程,如何建立公司内部网站?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  如何有效防御Web建站篡改攻击?  制作表格网站有哪些,线上表格怎么弄?  如何在Golang中使用encoding/gob序列化对象_存储和传输数据  家庭服务器如何搭建个人网站?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  制作旅游网站html,怎样注册旅游网站?  淘宝制作网站有哪些,淘宝网官网主页?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  视频网站制作教程,怎么样制作优酷网的小视频?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  ppt制作免费网站有哪些,ppt模板免费下载网站?  如何通过商城免费建站系统源码自定义网站主题?  如何制作网站标识牌,动态网站如何制作(教程)?  ui设计制作网站有哪些,手机UI设计网址吗?  详解jQuery中基本的动画方法  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  如何在IIS中新建站点并配置端口与物理路径?  如何安全更换建站之星模板并保留数据?  如何在香港服务器上快速搭建免备案网站?  建站主机选哪家性价比最高?  如何在建站宝盒中设置产品搜索功能?  C++时间戳转换成日期时间的步骤和示例代码  如何高效利用亚马逊云主机搭建企业网站?  电商网站制作公司有哪些,1688网是什么意思?  南宁网站建设制作定制,南宁网站建设可以定制吗?  如何在Golang中引入测试模块_Golang测试包导入与使用实践  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?  Python多线程使用规范_线程安全解析【教程】  建站之星后台管理:高效配置与模板优化提升用户体验  建站主机默认首页配置指南:核心功能与访问路径优化  官网建站费用明细查询_企业建站套餐价格及收费标准指南  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  如何通过网站建站时间优化SEO与用户体验? 

您的项目需求

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