首页 > Web开发 > 详细

JS之异步加载

时间:2019-05-01 16:08:09      阅读:107      评论:0      收藏:0      [点我收藏+]
   javascript 异步加载的三种方案
1.defer 异步加载,但要等到dom文档全部解析完才会被执行。只有IE能用。
2.async 异步加载,加载完就执行,async只能加载外部脚本,不能把js写在script 标签里。
    1.2 执行时也不阻塞页面                 当想同时兼容IE和其它浏览器该怎么写?
3.创建script,插入到DOM中,加载完毕后callBack
w3c方法:
  <script src="demo.js" aysnc="aysnc"></script> // w3c标准方法,能在标签里写代码
IE方法:
  <script src="demo.js" defer="defer"></script> //异步加载 只能ie能用,不能在标签里写代码
想让任何浏览器兼容同一个文件,应该怎么写?
  <script src="demo.js" defer="defer"></script>
  <script src="demo.js" aysnc="aysnc"></script>
这样写会起冲突,async加载完立马会异步执行,defer执行完后会等到文档解析完才执行,它们不一定谁先加载,加载完之后代码会出现覆盖现象。
也可以按第三种方案,按需加载。   
  demo2.js文件
  function test(){
    console.log(a);
}
 
<script>
  var script = document.createElement(‘script‘);   //创建
  script.type = ‘text/javascript‘;          //设置
  var src = "dmeo2.js";             //下载文件,当下载时它会发送请求,发请求过程中,页面已经解析完,系统解析很速度很快 ps:引入dmeo2.js文件
  document.head.appendChild;         //以下两行,不会执行到,所以会报test未定义
  test();
</script>
技术分享图片
window有一种提示机制,onload事件。当触发onload就说明下载完了。

JS之异步加载

原文:https://www.cnblogs.com/combating/p/10799918.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!