如何实现JavaScript文件的同步和异步加载

这篇文章主要介绍了如何实现JavaScript文件的同步和异步加载,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

我们提供的服务有:网站设计、成都网站制作、微信公众号开发、网站优化、网站认证、登封ssl等。为千余家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的登封网站制作公司

同步加载

可在html文件里以         

这种方式下,文件加载是同步的。即calc1.js加载完成后,才加载calc2.js,所以保证了calc2.js总能正确地调用calc1里的add函数。在Chrome里的调试结果如下:

如何实现JavaScript文件的同步和异步加载

但同步加载的缺点也明显,如果有多个文件的时候,全部加载时间会很长,而且阻塞用户界面响应。

通过Script Element异步加载

异步加载的优点是,能够同时加载多个js文件,而且由于是异步,不会阻塞用户界面,用户体验好。当然缺点是,不能保证有依赖关系的文件的加载顺序。

html 代码


  
  Title
  
    var script1 = document.createElement('script');
    script1.src='calc1.js';
    script1.type='text/javascript';

    var script2 = document.createElement('script');
    script2.src='calc2.js';
    script2.type='text/javascript';

    document.getElementsByTagName('head')[0].appendChild(script1).appendChild(script2);
  

在Chrome里的调试结果有时候能正确的输出如下:

如何实现JavaScript文件的同步和异步加载

但有时候由于clac1.js没有被先加载,calc2.js执行时会报错。

如何实现JavaScript文件的同步和异步加载

那么我们就得需要解决加载顺序问题,保证calc1.js先加载。


  
  Title
  
    function loadScript(file, callbackFn) {
      var script = document.createElement('script');
      script.src= file;
      script.type='text/javascript';
      // 监听onload时间,当前js文件加载完成后,再加载下一个
      script.onload = callbackFn;
      document.getElementsByTagName('head')[0].appendChild(script)
    }
    
    loadScript('calc1.js', function () {
      loadScript('calc2.js');
    } );

  

这样就能永远输出正确结果了。

通过 AJAX 加载JS文件
 

 

也能正确的输出结果。

如何实现JavaScript文件的同步和异步加载

感谢你能够认真阅读完这篇文章,希望小编分享的“如何实现JavaScript文件的同步和异步加载”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!


新闻名称:如何实现JavaScript文件的同步和异步加载
文章位置:http://pwwzsj.com/article/jodips.html