首页 > 代码库 > JavaScript高级程序设计之函数性能
JavaScript高级程序设计之函数性能
setTimeout 比 setInterval 性能更好
// 取代setInterval setTimeout(function self () { // code goes here setTimeout(self, interval); }, interval);
对异步执行的大数组的分割执行
// 大块、异步数组的处理 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);
函数节流
// 函数节流,某些代码没必要没有间断的连续重复执行,如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); }); };
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。