Javascriptajax的延迟加载功能
在JS,有些记忆需要只执行一次,如浏览器类型检测是最常用的功能,因为我们需要检测浏览器内置的XHR当我们使用AJAX。我们可以在第一时间测试记录的类型,我们不需要再次检查浏览器类型时使用AJAX,JS,只有一个如果始终是更有效的比没有if语句。常见的Ajax方法
复制代码代码如下所示:
* JS惰性函数
* /
函数ajax(){
如果(typeof XMLHttpRequest!=未定义){
返回新的XMLHttpRequest();
} else if(typeof ActiveX对象!=未定义){
如果(typeof arguments.callee.activexstring!=字符串){
VaR版本= {MSXML2. XMLHTTP。6
对于(var i = 0,K = version.length;i < K;i++){
尝试{
新的ActiveX对象(版本{我});
arguments.callee.activexstring =版本{我};
打破;
} catch(前){
扔掉前;
}
}
}
返回新的ActiveX对象(参数。调用者。activexstring);
其他{ }
把没有XHR对象;
}
}
每一次的AJAX()函数被调用时,浏览器内置的XHR检查,且效率不高。
使用惰性方法
复制代码代码如下所示:
* JS惰性函数
* /
函数ajax(){
如果(typeof XMLHttpRequest!=未定义){
函数(){
返回新的XMLHttpRequest();
};
} else if(typeof ActiveX对象!=未定义){
函数(){
如果(typeof arguments.callee.activexstring!=字符串){
VaR版本= {MSXML2. XMLHTTP。6
对于(var i = 0,K = version.length;i < K;i++){
尝试{
VaR XHR =新的ActiveX对象(版本{我});
arguments.callee.activexstring =版本{我};
返回XHR;
} catch(前){
扔掉前;
}
}
}
返回新的ActiveX对象(参数。调用者。activexstring);
}
其他{ }
函数(){
把没有XHR对象;
}
}
返回Ajax();
}
在第二种惰性方法中,每个分支如果分配Ajax()变量,有效地覆盖原始函数,最后一步调用新函数。
优化的关键
特定代码的执行只是实际调用,一些js库开始检测浏览器并预先设置它。
由于复杂的判断,第一次运行的速度是缓慢的,但是后面多个副本的效率会更快。
有时代码已经编写了很长时间,不尽相同,经常考虑如何使程序运行得更快更有效。这种程序下的思考是一种精装,不会产生多余的垃圾代码。事实上,代码的很多部分都是活的,人们更活跃。