一种防止Javascript事件函数高频触发和高频调用的方法

一种防止Javascript事件函数高频触发和高频调用的方法
Javascript在网页中最基本的功能是监视或响应用户的动作,这是非常有用的。一些用户的行为是非常高的,有些是非常罕见的。一些听众的功能进行如闪电,和一些重的浏览器将会被拖死。以浏览器窗口的大小事件,这一事件将触发一次浏览器窗口大小每一尺度变化。如果侦听器容量很大,您的浏览器很快就会被拖拽。

显然,我们不能允许浏览器被拖下来,但我们不能删除删除的听众。不过,我们可以限制函数调用的频率和削弱事件函数的影响。而触发监听器函数在窗口的每一步,大小触发器的最小时间间隔超过几毫秒,使其保持一个合理的呼叫通道,保证用户体验不被破坏。有一个很好的工具叫做Underscore.js JS,有一个简单的方法来轻松地创建一个侦听器,减少了事件函数触发频率。

Javascript代码

频率侦听器的代码很简单:

复制代码代码如下所示:

创建侦听器

无功updatelayout = _。消抖(function(e){)

所有的布局在这里更新

},500);运行至少500毫秒

事件侦听器添加

Window.addEventListener(调整

…这Underscore.js的底层代码实际上是检查间隔事件函数调用的频率:

函数返回,只要它继续被调用,就不会

被触发。函数在停止调用后将被调用。

n毫秒。如果立即 通过,则触发

而不是前沿,尾随。

_。消抖=函数(函数,等等,立即){

VaR超时;

返回函数(){

VaR上下文=,=参数args;

var后面的函数(){()

超时=空;

如果(!func.apply(立即)背景下,args);

};

var callNow =直接!超时;

ClearTimeout(超时);

超时= setTimeout(后来,等);

如果(callNow)func.apply(上下文,args);

};

};
代码不是特别复杂,但它也是一种幸福不写自己。当那个函数不依赖于其他的Underscore.js功能,所以你可以把这个方法添加到您最喜爱的js工具包,如jQuery和MooTools,这是很容易的。

复制代码代码如下所示:

/ / MooTools

function.implement({

反跳:功能(等待,立即){

VaR超时,

函数=;

返回函数(){

VaR上下文=,=参数args;

var后面的函数(){()

超时=空;

如果(!func.apply(立即)背景下,args);

};

var callNow =直接!超时;

ClearTimeout(超时);

超时= setTimeout(后来,等);

如果(callNow)func.apply(上下文,args);

};

}

});

使用 /它!

window.addevent(调整
如上所述,窗口调整大小事件是降频运行最普遍的使用,有一个共同的地方,根据按键输入自动完成提示。我真的很喜欢收集这样的代码片段,并且可以使你的网站更有效。它还建议研究Underscore.js,提供大量非常有用的功能。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部