一、概述
window.resize事件會在窗口尺寸改變的時候觸發,哪怕只是改變了1像素。所以當窗口進行拖動的時候會觸發很多次,很容易就卡死。
雖然部分瀏覽器已經進行了一點優化,但這還不夠。
二、優化方案
思路很簡單,就是設置一個開關和一個計時器,當這個計時器開始的時候,開關關閉,而計時器結束后開關重新開啟。而window.resize事件調用時判斷開關是否開啟即可。
看代碼:
var resizeWaiter = false; $(window).resize(function() { if(!resizeWaiter){ resizeWaiter = true; setTimeout(function(){ console.info("resize觸發了!"); resizeWaiter = false; }, 500); } });