异步加载js脚本的方法

做网页编程避免不了使用js文件,但有时因为一个js影响整个页面的响应速度,一卡一卡的户体验大大不好。当然,页面优化的方法很多,js压缩、静态化,减少请求次数等,但这些不是咱们要说的方法。现在要说的是通过异步的方式获取js文件,使用户感觉不到延时。没什么新鲜东西,下面贴一段在网上找到的调用方法

js
 1 var MiniSite=new Object();
 2 MiniSite.Browser={
 3     ie:/msie/.test(window.navigator.userAgent.toLowerCase()),
 4     moz:/gecko/.test(window.navigator.userAgent.toLowerCase()),
 5     opera:/opera/.test(window.navigator.userAgent.toLowerCase()),
 6     safari:/safari/.test(window.navigator.userAgent.toLowerCase())
 7 };
 8 
 9 MiniSite.JsLoader={
10     load:function(sUrl,fCallback){
11         var _script=document.createElement('script');
12         _script.setAttribute('charset','gb2312');
13         _script.setAttribute('type','text/javascript');
14         _script.setAttribute('src',sUrl);
15         document.getElementsByTagName('head')[0].appendChild(_script);
16         if(MiniSite.Browser.ie){
17             _script.onreadystatechange=function(){
18                 if(this.readyState=='loaded'||this.readyState=='complete'){
19                     fCallback();
20                 }
21             };
22         }else if(MiniSite.Browser.moz){
23             _script.onload=function(){
24                 fCallback();
25             };
26         }else{
27             fCallback();
28         }
29     }
30 };
31 
32 //使用方法
33 function showaddr()
34 {
35     alert(IPData);
36 }
37 
38 MiniSite.JsLoader.load("http://fw.qq.com/ipaddress",function(){showaddr();});
39 


 上面的代码一看都明白,不多说了

原文地址:https://www.cnblogs.com/freeton/p/1750613.html