首页 > 编程语言 > 详细

JavaScript高级程序设计之函数性能

时间:2014-06-16 07:47:19      阅读:357      评论:0      收藏:0      [点我收藏+]

setTimeout 比 setInterval 性能更好

// 取代setInterval
setTimeout(function self () {
    
    // code goes here

    setTimeout(self, interval);
}, interval);

对异步执行的大数组的分割执行

bubuko.com,布布扣
// 大块、异步数组的处理
function chunk(arr, process, context) {
    setTimeout(function self() {

        var item = arr.shift();
        process.call(context, item);

        if (arr.length > 0) {
            setTimeout(self, 100)
        }
    }, 100)
}

var arr = ["123", "456", "789", "123", "456", "789", "123", "456", "789"],
    process = function (item) {
        console.log(item);
    };

// arr.concat() 返回arr数组的一个副本;否则chunk后arr成为了空数组
chunk(arr.concat(), process);
bubuko.com,布布扣

函数节流

bubuko.com,布布扣
// 函数节流,某些代码没必要没有间断的连续重复执行,如winddow.onresize = function(){ throttle(fn); }
function throttle(method, context) {
    clearTimeout(method.tId);

    method.tId = setTimeout(function () {
        method.call(context)
    }, 100)
}

window.onscroll = function () {
    throttle(function () {
        console.log(document.documentElement.scrollTop);
    });
};
bubuko.com,布布扣

 

JavaScript高级程序设计之函数性能,布布扣,bubuko.com

JavaScript高级程序设计之函数性能

原文:http://www.cnblogs.com/xiankui/p/3783817.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!