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,提供大量非常有用的功能。