在最近的一個jQuery插件中,我使用到了jQuery中的resize()方法來檢測用戶調整瀏覽器窗口並運行相關代碼。能夠注意到resize window時各個瀏覽器的性能消耗不一。瀏覽器
#IE、Safari、Chrome在調整窗口變化中一直在執行resize事件 #Opera則在這個過程當中發生了不少次resize事件,但在結束調整時執行。 #Firefox則是隻在調整結束後才執行事件。
咱們想要的明顯是在結束調整以後才執行事件。幸運的是咱們能夠經過如下幾種方法來調整:bash
(function($) { var resizeTimer; function resizeFunction() { // 處理函數 }; $(window).resize(function() { clearTimeout(resizeTimer); resizeTimer = setTimeout(resizeFunction, 250);//咱們能夠適當調整時間間隔 }); resizeFunction();//首次運行 })(jQuery);
一樣的,咱們對滾動監聽也能夠作一樣的處理函數
(function($) { var scrollTimer; function scrollFunction() { // 處理函數 }; $(window).scroll(function() { clearTimeout(scrollTimer); scrollTimer = setTimeout(scrollFunction, 250);//咱們能夠適當調整時間間隔 }); })(jQuery);