亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

移動(dòng)端倒計(jì)時(shí)切到后臺(tái)切回來(lái)不繼續(xù)執(zhí)行的問(wèn)題

Aomine / 2787人閱讀

摘要:?jiǎn)栴}描述這個(gè)倒計(jì)時(shí)按鈕,如果頁(yè)面在移動(dòng)端切到后臺(tái)和切回來(lái),倒計(jì)時(shí)停止運(yùn)行。相關(guān)代碼為了兼容,切換到后臺(tái)繼續(xù)運(yùn)行

問(wèn)題描述




這個(gè)倒計(jì)時(shí)按鈕,如果頁(yè)面在移動(dòng)端切到后臺(tái)和切回來(lái),倒計(jì)時(shí)停止運(yùn)行。
但是在pc端沒(méi)有這個(gè)問(wèn)題。
倒計(jì)時(shí)代碼如下

 let downCount = () => {
                        if (this.count >= 1) {
                            this.count--;
                        } else {
                            clearInterval(timer);
                        }
                    };
timer = setInterval(downCount , 1000);
知識(shí)點(diǎn)

頁(yè)面切到后臺(tái)會(huì)觸發(fā) visibilitychange 事件,通過(guò)document監(jiān)聽(tīng)器可以捕獲這個(gè)事件
Document.visibilityState 可以獲得當(dāng)前狀態(tài)

visible : 頁(yè)面內(nèi)容至少是部分可見(jiàn)。 在實(shí)際中,這意味著頁(yè)面是非最小化窗口的前景選項(xiàng)卡。

hidden : 頁(yè)面內(nèi)容對(duì)用戶(hù)不可見(jiàn)。 在實(shí)際中,這意味著文檔可以是一個(gè)后臺(tái)標(biāo)簽,或是最小化窗口的一部分,或是在操作系統(tǒng)鎖屏激活的狀態(tài)下。

prerender : 頁(yè)面內(nèi)容正在被預(yù)渲染且對(duì)用戶(hù)是不可見(jiàn)的(被document.hidden當(dāng)做隱藏). 文檔可能初始狀態(tài)為 prerender,但絕不會(huì)從其它值轉(zhuǎn)為該值。 注釋?zhuān)簽g覽器支持是可選的。

https://developer.mozilla.org...

解決思路

倒計(jì)時(shí)開(kāi)始啟動(dòng),增加監(jiān)聽(tīng)器,監(jiān)聽(tīng)visibilitychange事件

切換到后臺(tái),觸發(fā)visibilitychange事件,記錄開(kāi)始時(shí)間

切換到前臺(tái),觸發(fā)visibilitychange事件,記錄結(jié)束時(shí)間

用結(jié)束時(shí)間 - 開(kāi)始時(shí)間,當(dāng)前值減去時(shí)間差就是切換到后臺(tái)走的數(shù)值,然后繼續(xù)運(yùn)行倒計(jì)時(shí)。

相關(guān)代碼
let downCount = () => {
                        if (this.count >= 1) {
                            this.count--;
                        } else {
                            clearInterval(timer);
                        }
                    };
document.addEventListener("visibilitychange",() => {
    if(document.visibilityState == "hidden"){
        clearInterval(timer);//為了兼容pc,pc切換到后臺(tái)繼續(xù)運(yùn)行
        start= new Date().getTime();
    } else  if( document.visibilityState == "visible"){
        end = new Date().getTime();
        s2 =Math.floor( (end - start)/1000);
        this.count =  this.count - s2;
        timer = setInterval(downCount , 1000);
        document.removeEventListener("visibilitychange");
    }
})
timer = setInterval(downCount , 1000);

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/98867.html

相關(guān)文章

  • 馬蜂窩 iOS App 啟動(dòng)治理:回歸用戶(hù)體驗(yàn)

    摘要:馬蜂窩旅游歷經(jīng)幾十個(gè)版本的開(kāi)發(fā)迭代,在啟動(dòng)流程上積累了一定的技術(shù)債務(wù)。我們定義啟動(dòng)廣告曝光率啟動(dòng)廣告曝光啟動(dòng)廣告加載。 增長(zhǎng)、活躍、留存是移動(dòng) App 的常見(jiàn)核心指標(biāo),直接反映一款 App 甚至一個(gè)互聯(lián)網(wǎng)公司運(yùn)行的健康程度和發(fā)展動(dòng)能。啟動(dòng)流程的體驗(yàn)決定了用戶(hù)的第一印象,在一定程度上影響了用戶(hù)活躍度和留存率。因此,確保啟動(dòng)流程的良好體驗(yàn)至關(guān)重要。 「馬蜂窩旅游」App 是馬蜂窩為用戶(hù)提供...

    Jinkey 評(píng)論0 收藏0
  • 21世紀(jì)了還愚公移山?數(shù)據(jù)庫(kù)這么遷移更穩(wěn)定!

    摘要:數(shù)據(jù)遷移,主要利用阿里云數(shù)據(jù)傳輸服務(wù)的數(shù)據(jù)遷移能力,涉及到全量遷移增量遷移一致性校驗(yàn)及反向任務(wù)。小結(jié)通過(guò)周密的遷移方案設(shè)計(jì),以及強(qiáng)大的數(shù)據(jù)遷移工具的能力,閑魚(yú)商品庫(kù)順利完成億在線(xiàn)數(shù)據(jù)庫(kù)服務(wù)遷移,獨(dú)立的物理部署顯著提升商品庫(kù)在線(xiàn)服務(wù)的穩(wěn)定性。 背景 在系統(tǒng)的快速迭代過(guò)程中,業(yè)務(wù)系統(tǒng)往往部署在同一個(gè)物理庫(kù),沒(méi)有做核心數(shù)據(jù)和非核心數(shù)據(jù)的物理隔離。隨著數(shù)據(jù)量的擴(kuò)大這種情況會(huì)帶來(lái)穩(wěn)定性的風(fēng)險(xiǎn),如...

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

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

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<