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库开始检测浏览器并预先设置它。

由于复杂的判断,第一次运行的速度是缓慢的,但是后面多个副本的效率会更快。



有时代码已经编写了很长时间,不尽相同,经常考虑如何使程序运行得更快更有效。这种程序下的思考是一种精装,不会产生多余的垃圾代码。事实上,代码的很多部分都是活的,人们更活跃。