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