摘要:表示此次事件前一次的狀態或,而自然表示當前的狀態,每次事件執行時,無論狀態是否發生狀態改變,都把原先的值賦給,而則更新到最新的狀態。
在很多時候,一系列事件會觸發的很快,在這種事件中實時監聽某個值的狀態并在某個條件下執行其他操作,無疑會使性能變得十分狼狽。
為了方法講解的簡明易懂,我選擇jQuery的scroll事件來表述。
var wh = $(window).height(); $(document).on("scroll",function() { var sh = $(document).scrollTop(); if(sh如示例代碼所示,每次監聽到scroll事件,都會執行switchBlur函數。比如此時的狀態是不模糊,若sh
始終為ture,switchBlur(0)完全沒必要執行。 下面改進一下代碼:
var blur_px; var s1 = 0; var s2 = 0; var wh = $(window).height(); $(document).on("scroll",function() { var sh = $(document).scrollTop(); if(sh我使用s1和s2記錄兩個時刻的狀態。s1表示此次scroll事件前一次的狀態(0或1),而s2自然表示當前的狀態,每次事件執行時,無論狀態是否發生狀態改變,都把原先s2的值賦給s1,而s2則更新到最新的狀態。可以發現,switchBlur函數只在s1不等于s2的時候執行,那么什么時候s1不等于s2呢?答案就是狀態發生改變的時候,s2已經是最新的狀態,此時s1保留的仍然是上一次事件執行時的狀態,當然不相等啦。
總結:此方法試用于只在狀態發生改變時才需要執行相關代碼的情況。這里只是一個例子,可以延伸到很多需要優化性能的地方。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/86186.html
摘要:表示此次事件前一次的狀態或,而自然表示當前的狀態,每次事件執行時,無論狀態是否發生狀態改變,都把原先的值賦給,而則更新到最新的狀態。 在很多時候,一系列事件會觸發的很快,在這種事件中實時監聽某個值的狀態并在某個條件下執行其他操作,無疑會使性能變得十分狼狽。 為了方法講解的簡明易懂,我選擇jQuery的scroll事件來表述。 var wh = $(window).height(); $...
摘要:之前寫過一篇瀏覽器事件的相關操作和事件運行的原理瀏覽器事件解析。注意,頁面從瀏覽器緩存加載,并不會觸發事件。事件有一個屬性,返回一個布爾值。此外,不支持事件,可以使用事件代替。 之前寫過一篇瀏覽器事件的相關操作和事件運行的原理——JavaScript瀏覽器事件解析。這一篇主要寫一些常用的事件及一些可能的坑。 表單事件 鍵盤事件 當 , 的值發生變化時觸發。此外,打開 contente...
摘要:復雜性的增加使得在應用程序生命周期的每個給定時刻都很難知道的確切狀態。概述用來監視變動。這個被創建的對象有三個方法啟動監聽用來停止觀察返用來清除變動記錄,即不再處理未處理的變動。使用瀏覽器方法,可以設置一個任務,定期檢查是否發生了任何更改。 這是專門探索 JavaScript 及其所構建的組件的系列文章的第10篇。 想閱讀更多優質文章請猛戳GitHub博客,一年百來篇優質文章等著你! ...
閱讀 2596·2021-11-17 09:33
閱讀 3936·2021-10-19 11:46
閱讀 910·2021-10-14 09:42
閱讀 2252·2021-09-22 15:41
閱讀 4204·2021-09-22 15:20
閱讀 4628·2021-09-07 10:22
閱讀 2302·2021-09-04 16:40
閱讀 811·2019-08-30 15:52