利用函数的延迟负载提高Javascript代码的执行效率

利用函数的延迟负载提高Javascript代码的执行效率
在Javascript代码中,由于浏览器行为之间的差异,我们经常函数中包含大量if语句来检查浏览器特性并解决不同浏览器的兼容性问题:
复制代码代码如下所示:
函数AddEvent(类型、元素、有趣){
如果(元。addEventListener){
element.addeventlistener(类型、乐趣、假);
}
如果(元。attachevent){
element.attachevent(开+型,好玩);
}
别的{
元{开+型} =乐趣;
}
}

每次你叫AddEvent功能,它必须支持的浏览器能力进行检查,首先检查是否支持addEventListener方法,如果没有,再检查是否支持attachevent方法,如果通过DOM 0类方法不支持添加事件。这个过程中,当AddEvent函数调用去了,事实上,如果浏览器支持的一种方式,然后他会一直支持的检测,不需要做其他的分支,也就是说,如果语句不需要为每个执行的代码,可以运行得更快。

解决方案是将其称为延迟加载技术。

所谓的懒加载意味着,如果一个职能部门只会执行一次,然后在函数被调用时,分支代码,支持直接进入。有两种惰性加载的方式,在第一次调用函数的第一件事,两次函数本身的功能,将挂满枝头的一个条件的函数,调用原函数没有分支的执行后,我们可以使用惰性加载覆盖方式(AddEvent)。
复制代码代码如下所示:
函数AddEvent(类型、元素、有趣){
如果(元。addEventListener){
AddEvent =函数(类型、元素、有趣){
element.addeventlistener(类型、乐趣、假);
}
}
如果(元。attachevent){
AddEvent =函数(类型、元素、有趣){
element.attachevent(开+型,好玩);
}
}
别的{
AddEvent =函数(类型、元素、有趣){
元{开+型} =乐趣;
}
}
返回AddEvent(类型、元素、有趣);
}

在这个懒加载,每支AddEvent()语句指定AddEvent变量,有效地覆盖了原有的功能,最后一步是调用新函数。到下一个电话()AddEvent将直接调用新任务的功能,如果没有更多的语句被执行。

实现懒加载二是指定适当的函数声明。这不失去性能时,调用函数的时候,失去一点表现只有当加载代码。这是AddEvent(),是以这种方式重写。
复制代码代码如下所示:
VaR AddEvent =(函数(){()
如果(文件。addEventListener){
返回函数(类型,元素,乐趣){
element.addeventlistener(类型、乐趣、假);
}
}
如果(文件。attachevent){
返回函数(类型,元素,乐趣){
element.attachevent(开+型,好玩);
}
}
{其他
返回函数(类型,元素,乐趣){
元{开+型} =乐趣;
}
}
});

使用这个例子的方法是创建一个匿名自我通过不同的分支执行的功能应该被用来确定实际的功能,逻辑是一样的,不一样的地方是函数表达式的使用(使用var函数)和添加一个匿名函数,除了各分功能正确,并立即指派给变量AddEvent。

延迟加载函数的优点是只执行一次分支,避免在每次执行函数时执行if分支和不必要的代码。因此,代码的性能得到了改善。那样的话,它更合适,也取决于你的需要。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部