jay*_*rjo 1 jquery webkit resize cross-browser
在jQuery resize事件页面上,它被说成:
"调整大小处理程序中的代码永远不应该依赖于调用处理程序的次数.根据实现,调整大小事件可以在调整大小正在进行时连续发送(Internet Explorer和基于WebKit的浏览器(如Safari)中的典型行为和Chrome),或仅在调整大小操作结束时(Firefox中的典型行为)."
现在我发现我的应用程序中存在越来越多的内存泄漏,因为我不断调整浏览器窗口的大小,这反过来会不断触发特定的代码.我认为调整大小事件在调整大小操作结束时只调用一次,但是现在看完之后我认为我的代码本身就是过度使用了.
当调整大小操作已经结束时,是否有任何既定的做法只触发一次回调跨浏览器?
无论如何,当您使用jQuery时,请查看Ben Alman的doTimeout插件.您可以使用它来去除您的事件处理程序.
甚至还有一个与您的案例完全匹配的示例:
$(window).resize(function(){
$.doTimeout( 'resize', 250, function(){
// do something computationally expensive
});
});
Run Code Online (Sandbox Code Playgroud)
这里的关键是,传递给的函数doTimeout
仅在未在下一个250毫秒内再次调用resize处理程序(即未触发resize事件)时执行.如果是,则中止计时器并启动新计时器.
归档时间: |
|
查看次数: |
5601 次 |
最近记录: |