国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

【JS】在連續(xù)性監(jiān)聽事件中,監(jiān)聽當(dāng)前狀態(tài)是否變化

justCoding / 898人閱讀

摘要:表示此次事件前一次的狀態(tài)或,而自然表示當(dāng)前的狀態(tài),每次事件執(zhí)行時,無論狀態(tài)是否發(fā)生狀態(tài)改變,都把原先的值賦給,而則更新到最新的狀態(tài)。

在很多時候,一系列事件會觸發(fā)的很快,在這種事件中實(shí)時監(jiān)聽某個值的狀態(tài)并在某個條件下執(zhí)行其他操作,無疑會使性能變得十分狼狽。

為了方法講解的簡明易懂,我選擇jQuery的scroll事件來表述。

var wh = $(window).height();
$(document).on("scroll",function() {
    var sh = $(document).scrollTop();
    if(sh

如示例代碼所示,每次監(jiān)聽到scroll事件,都會執(zhí)行switchBlur函數(shù)。比如此時的狀態(tài)是不模糊,若sh始終為tureswitchBlur(0)完全沒必要執(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

我使用s1s2記錄兩個時刻的狀態(tài)。s1表示此次scroll事件前一次的狀態(tài)(0或1),而s2自然表示當(dāng)前的狀態(tài),每次事件執(zhí)行時,無論狀態(tài)是否發(fā)生狀態(tài)改變,都把原先s2的值賦給s1,而s2則更新到最新的狀態(tài)。可以發(fā)現(xiàn),switchBlur函數(shù)只在s1不等于s2的時候執(zhí)行,那么什么時候s1不等于s2呢?答案就是狀態(tài)發(fā)生改變的時候,s2已經(jīng)是最新的狀態(tài),此時s1保留的仍然是上一次事件執(zhí)行時的狀態(tài),當(dāng)然不相等啦。

總結(jié):此方法試用于只在狀態(tài)發(fā)生改變時才需要執(zhí)行相關(guān)代碼的情況。這里只是一個例子,可以延伸到很多需要優(yōu)化性能的地方。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/64736.html

相關(guān)文章

  • JS續(xù)性監(jiān)聽事件監(jiān)聽當(dāng)前狀態(tài)是否變化

    摘要:表示此次事件前一次的狀態(tài)或,而自然表示當(dāng)前的狀態(tài),每次事件執(zhí)行時,無論狀態(tài)是否發(fā)生狀態(tài)改變,都把原先的值賦給,而則更新到最新的狀態(tài)。 在很多時候,一系列事件會觸發(fā)的很快,在這種事件中實(shí)時監(jiān)聽某個值的狀態(tài)并在某個條件下執(zhí)行其他操作,無疑會使性能變得十分狼狽。 為了方法講解的簡明易懂,我選擇jQuery的scroll事件來表述。 var wh = $(window).height(); $...

    Cciradih 評論0 收藏0
  • 瀏覽器常用事件解析

    摘要:之前寫過一篇瀏覽器事件的相關(guān)操作和事件運(yùn)行的原理瀏覽器事件解析。注意,頁面從瀏覽器緩存加載,并不會觸發(fā)事件。事件有一個屬性,返回一個布爾值。此外,不支持事件,可以使用事件代替。 之前寫過一篇瀏覽器事件的相關(guān)操作和事件運(yùn)行的原理——JavaScript瀏覽器事件解析。這一篇主要寫一些常用的事件及一些可能的坑。 表單事件 鍵盤事件 當(dāng) , 的值發(fā)生變化時觸發(fā)。此外,打開 contente...

    zhoutk 評論0 收藏0
  • 瀏覽器常用事件解析

    摘要:之前寫過一篇瀏覽器事件的相關(guān)操作和事件運(yùn)行的原理瀏覽器事件解析。注意,頁面從瀏覽器緩存加載,并不會觸發(fā)事件。事件有一個屬性,返回一個布爾值。此外,不支持事件,可以使用事件代替。 之前寫過一篇瀏覽器事件的相關(guān)操作和事件運(yùn)行的原理——JavaScript瀏覽器事件解析。這一篇主要寫一些常用的事件及一些可能的坑。 表單事件 鍵盤事件 當(dāng) , 的值發(fā)生變化時觸發(fā)。此外,打開 contente...

    Richard_Gao 評論0 收藏0
  • JavaScript是如何工作的:使用 MutationObserver 跟蹤 DOM 的變化

    摘要:復(fù)雜性的增加使得在應(yīng)用程序生命周期的每個給定時刻都很難知道的確切狀態(tài)。概述用來監(jiān)視變動。這個被創(chuàng)建的對象有三個方法啟動監(jiān)聽用來停止觀察返用來清除變動記錄,即不再處理未處理的變動。使用瀏覽器方法,可以設(shè)置一個任務(wù),定期檢查是否發(fā)生了任何更改。 這是專門探索 JavaScript 及其所構(gòu)建的組件的系列文章的第10篇。 想閱讀更多優(yōu)質(zhì)文章請猛戳GitHub博客,一年百來篇優(yōu)質(zhì)文章等著你! ...

    jasperyang 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<