window resize和scroll事件的基本優(yōu)化思路
更新時間:2014年04月29日 15:25:39 作者:
在項目中使用scroll事件去加載數(shù)據(jù),結(jié)果IE下悲劇了。下面為大家介紹下window resize和scroll事件的基本優(yōu)化思路,需要的朋友可以參考下
同事在項目中使用scroll事件去加載數(shù)據(jù),結(jié)果IE下悲劇了。給了一個簡單優(yōu)化方法,效果明顯。
只要用戶改變窗口大小,會對內(nèi)部一些元素大小重新計算,可能導致整個頁面重新渲染,最終導致大量消耗 CPU。比如調(diào)用 resize 方法,用戶改變窗口大小時會不停的被觸發(fā), 低版本的IE 會可能陷入假死狀態(tài)。window的scroll事件也是如此,鼠標滾動或拖動滾動條,就會不停的觸發(fā)scroll事件,如果處理的東西多,低版本的IE也會陷入假死狀態(tài)。
基本的優(yōu)化思路:在一定的時間之內(nèi),只執(zhí)行一次resize事件函數(shù)。
var resizeTimer = null;
$(window).on('resize', function () {
if (resizeTimer) {
clearTimeout(resizeTimer)
}
resizeTimer = setTimeout(function(){
console.log("window resize");
}, 400);
}
);
scroll事件優(yōu)化同理。
只要用戶改變窗口大小,會對內(nèi)部一些元素大小重新計算,可能導致整個頁面重新渲染,最終導致大量消耗 CPU。比如調(diào)用 resize 方法,用戶改變窗口大小時會不停的被觸發(fā), 低版本的IE 會可能陷入假死狀態(tài)。window的scroll事件也是如此,鼠標滾動或拖動滾動條,就會不停的觸發(fā)scroll事件,如果處理的東西多,低版本的IE也會陷入假死狀態(tài)。
基本的優(yōu)化思路:在一定的時間之內(nèi),只執(zhí)行一次resize事件函數(shù)。
復(fù)制代碼 代碼如下:
var resizeTimer = null;
$(window).on('resize', function () {
if (resizeTimer) {
clearTimeout(resizeTimer)
}
resizeTimer = setTimeout(function(){
console.log("window resize");
}, 400);
}
);
scroll事件優(yōu)化同理。
您可能感興趣的文章:
相關(guān)文章
關(guān)于二級域名下使用一級域名下的COOKIE的問題
我們通常在使用cookie的時候一般都只是局限在本站內(nèi)使用,也就是只在一個域名下使用2011-11-11
微信小程序在其他頁面監(jiān)聽globalData中值的變化
這篇文章主要給大家介紹了關(guān)于微信小程序如何在其他頁面監(jiān)聽globalData中值的變化的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用微信小程序具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-07-07
淺談Vue3.0之前你必須知道的TypeScript實戰(zhàn)技巧
這篇文章主要介紹了淺談Vue3.0之前你必須知道的TypeScript實戰(zhàn)技巧,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09
JavaScript實現(xiàn)的斑馬線表格效果【隔行變色】
這篇文章主要介紹了JavaScript實現(xiàn)的斑馬線表格效果,通過javascript針對table表格的遍歷與運算實現(xiàn)隔行變色功能,非常簡單實用,需要的朋友可以參考下2017-09-09

