最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Javascript Throttle & Debounce應(yīng)用介紹

 更新時間:2013年03月19日 10:14:10   作者:  
Throttle:無視一定時間內(nèi)所有的調(diào)用Debounce:一定間隔內(nèi)沒有調(diào)用時,接下來將為大家介紹下Throttle & Debounce的應(yīng)用,感興趣的朋友可以參考下哈
Throttle
無視一定時間內(nèi)所有的調(diào)用,適合在發(fā)生頻度比較高的,處理比較重的時候使用。
復(fù)制代碼 代碼如下:

var throttle = function (func, threshold, alt) {
var last = Date.now();
threshold = threshold || 100;
return function () {
var now = Date.now();
if (now - last < threshold) {
if (alt) {
alt.apply(this, arguments);
}
return;
}
last = now;
func.apply(this, arguments);
};
};

Debounce
一定間隔內(nèi)沒有調(diào)用時,才開始執(zhí)行被調(diào)用方法。
復(fù)制代碼 代碼如下:

var debounce = function (func, threshold, execASAP) {
var timeout = null;
threshold = threshold || 100;
return function () {
var self = this;
var args = arguments;
var delayed = function () {
if (!execASAP) {
func.apply(self, args);
}
timeout = null;
};
if (timeout) {
clearTimeout(timeout);
} else if (execASAP) {
func.apply(self, args);
}
timeout = setTimeout(delayed, threshold);
};
};

Test
復(fù)制代碼 代碼如下:

var test = function (wrapper, threshold) {
var log = function () {
console.log(Date.now() - start);
};
var wrapperedFunc = wrapper(log, threshold);
var start = Date.now();
var arr = [];
for (var i = 0; i < 10; i++) {
arr.push(wrapperedFunc);
}
while(i > 0) {
var random = Math.random() * 1000;
console.log('index: ' + i);
console.log('random: ' + random);
setTimeout(arr[--i], random);
}
};
test(debounce, 1000);
test(throttle, 1000);

相關(guān)文章

最新評論

朔州市| 民勤县| 乌拉特前旗| 沾化县| 凯里市| 锡林浩特市| 房山区| 内丘县| 玉龙| 阿图什市| 德化县| 大港区| 垫江县| 纳雍县| 芮城县| 内黄县| 七台河市| 库伦旗| 红安县| 桑日县| 商城县| 蒲江县| 台南市| 杭州市| 浦北县| 雷山县| 中江县| 察雅县| 南通市| 凤阳县| 昌邑市| 小金县| 盐亭县| 灵宝市| 古丈县| 宜阳县| 龙南县| 准格尔旗| 石狮市| 吉林省| 竹北市|