成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

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

Cciradih / 1296人閱讀

摘要:表示此次事件前一次的狀態(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始終為tureswitchBlur(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

我使用s1s2記錄兩個(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

相關(guān)文章

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

    摘要:表示此次事件前一次的狀態(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(); $...

    justCoding 評(píng)論0 收藏0
  • 瀏覽器常用事件解析

    摘要:之前寫(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...

    zhoutk 評(píng)論0 收藏0
  • 瀏覽器常用事件解析

    摘要:之前寫(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...

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

    摘要:復(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ì)文章等著你! ...

    jasperyang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<