色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

[JavaScript]使用setTimeout減少多余事件

在瀏覽器上,某些事件的觸發是非常頻繁的,幾乎是毫秒級的,最典型的就是document.onmousemove,而這么頻繁的事件,往往都是弊大于利的。今天看到一個很好的解決辦法,這里稍加改進成通用的方法,雖不能徹底解決問題,但是可以有效緩解,而且簡單易行,核心代碼如下:

    //可進一步擴展為支持可傳參的fn
var onFooEndFunc = function(fn) {
var delay = 50; // 根據實際情況可調整延時時間
var executionTimer;
return function() {
if (!!executionTimer) {
clearTimeout(executionTimer);
}
//這里延時執行你的函數
executionTimer = setTimeout(function() {
//alert('123');
fn();
}, delay);
};
};

下面以document.onmousemove為例,看看運行的效果,使用延時處理前,移動鼠標,會發現事件觸發非常頻繁,使用延時處理后,移動鼠標,事件就沒那么頻繁了。

 

  

it知識庫[JavaScript]使用setTimeout減少多余事件,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 西丰县| 淄博市| 柘荣县| 道真| 和林格尔县| 伊通| 乌拉特中旗| 阿鲁科尔沁旗| 富裕县| 阿荣旗| 姚安县| 闵行区| 无锡市| 湖南省| 襄汾县| 镇沅| 阿荣旗| 唐海县| 南宫市| 四平市| 鄂州市| 林周县| 邵武市| 礼泉县| 苏尼特右旗| 庆云县| 平邑县| 上林县| 鹤庆县| 永丰县| 龙井市| 隆化县| 南丰县| 平远县| 原平市| 镇宁| 宜川县| 桂东县| 广昌县| 大邑县| 镇坪县|