加速窗口大小调整功能的性能
Speeding up window resize function performance
我有一些类似于下面的脚本:
var breakpoints = [0,240,480,960,9999],
bpCount = breakpoints.length,
windowsize = 0;
window.onresize = function() {
windowsize = document.body.clientWidth;
for(var i=0; i<bpCount; i++) {
if(windowsize >= breakpoints[i] && windowsize < breakpoints[i+1]) {
doSomething(breakpoints[i]);
break;
}
}
};
然而,这似乎运行相当缓慢,即使在Chrome上一个体面的PC,甚至当"doSomething"只是执行一个'console.log',所以我只是想知道是否有任何更好的方法来检查屏幕大小是否在两个值之间,因为它调整大小?
谢谢
不要每次都轮询的大小。你使用了太多的计算能力。
相反,创建一个计时器并经常检查大小(10 ms
可能太快了):
var checkWindowSizeTimer;
function checkWindowSize() {
var windowsize = document.body.clientWidth;
if (windowsize >= breakpoints[i] && windowsize < breakpoints[i+1]) {
doSomething(breakpoints[i]);
clearInterval(checkWindowSizeTimer);
}
}
window.onresize = function() {
checkWindowSizeTimer = setInterval(checkWindowSize, 10);
}
当窗口的大小超过你的界限时,计时器退出。
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 提高JQuery的性能
- 添加文字和评论功能更新Div
- JavaScript打印功能使日历停止工作
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 如何防止网页加载后自动启动功能
- 除修剪外的其他功能
- 悬停功能触发器
- 使用angularjs向浏览器发送servlet响应(下载功能)
- 使用正则表达式评估电子邮件地址时出现性能问题
- 超时功能的性能
- 通过单向绑定的过滤功能提高自定义角度下拉菜单中的角度性能
- UIWebView 性能与 JS 点击功能
- JavaScript锁定功能,以防止递归(浏览器冻结/性能)
- 功能位置对整体性能的影响
- javascript性能功能
- 控制器性能比较中的自定义过滤器与过滤器功能
- 每次单击都会将其功能的性能提高到一
- 加速窗口大小调整功能的性能
- 在处理大量元素时,隐藏/显示功能的性能极慢