亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁 微信小程式 微信開發(fā) 微信公眾號開發(fā),實現(xiàn)倒數(shù)計時的一個功能(純程式碼)

微信公眾號開發(fā),實現(xiàn)倒數(shù)計時的一個功能(純程式碼)

Jul 27, 2018 pm 04:35 PM
android iphone javascript

以下是我自己寫的一個程式碼,功能是在微信公眾號開發(fā)過程中實現(xiàn)倒數(shù)計時的。效果如下,訂單已提交,請在2分57秒內(nèi)完成付款。純程式碼解析。

微信公眾號開發(fā),實現(xiàn)倒數(shù)計時的一個功能(純程式碼)

開始的想法並沒有考慮頁面在背景運作以及鎖定畫面等情況。程式碼如下:

let interval = setInterval(() => {
            let {staticTime} = this.state;
            staticTime = staticTime - 1;
            if (staticTime <= 0) {
                clearInterval(interval);
                this.setState({
                    tip:&#39;支付超時&#39;,
                    staticTime:0
                });
                return;
            }
            let minutes = parseInt(staticTime/60);
            let Seconds = staticTime%60;
            let tip = &#39;訂單已提交,請在&#39;+minutes+&#39;分&#39;+Seconds+&#39;秒內(nèi)完成支付&#39;;
            this.setState({
                tip:tip,
                staticTime:staticTime 
            });
        }, 1000);
后來測試發(fā)現(xiàn)鎖屏或者把頁面留在后臺,計算就不對,于是把代碼進行了如下改造。



  let interval = setInterval(() => {
            let {backGroundTime, staticTime} = this.state;
            this.setState({
                backGroundTime:0
            });
            staticTime = staticTime - backGroundTime - 1; 
            if (staticTime <= 0) {
                clearInterval(interval);
                this.setState({
                    tip:&#39;支付超時&#39;,
                    staticTime:0,
                });
                return;
            }
            let minutes = parseInt(staticTime/60);
            let Seconds = staticTime%60;
            let tip = &#39;訂單已提交,請在&#39;+minutes+&#39;分&#39;+Seconds+&#39;秒內(nèi)完成支付&#39;;
            this.setState({
                tip:tip,
                staticTime:staticTime,
            });
        }, 1000);
        this.listenPageShowHideHandle();
    
     //計算頁面在后臺的時間

listenPageShowHideHandle = () =>{

let {backGroundTime} = this.state;
let start, end;
let self = this;
document.addEventListener("visibilitychange", function() {
    if(document.visibilityState == &#39;hidden&#39;){
        start = new Date().getTime();
    }else if(document.visibilityState == &#39;visible&#39;){
        end = new Date().getTime();
        backGroundTime = Math.floor((end - start)/1000);
        self.setState({backGroundTime});
        console.log(&#39;時間差:&#39;, backGroundTime);
    }
    console.log( document.visibilityState );
});

}

改造之后發(fā)先問題依然存在。原因是:
You cannot continue to run javascript while the iPhone is sleeping using setTimeout(), however.When the phone is put to sleep, Safari will kill any running javascript processes using setTimeout(). Check out this answer here for some reasons why this is done.

**解決方案:**
訂單生成的時候我們記錄下這個時間為A, 時間間隔為B(3分鐘內(nèi)需要付款,B為3*60*1000),C為現(xiàn)在的時間。我們使用setInterval 每個1秒讀取一下時間。那么倒計時時間 == A+B-C,代碼如下

 let interval = setInterval(()=>{
        let {orderTime, staticTime} = this.state;
        let nowTime = Date.now();
        let sub = Math.floor((orderTime + staticTime - nowTime)/1000);
        console.log(&#39;sub&#39;,sub);
        if(sub<=0){
            clearInterval(interval);
            this.setState({
                tip:&#39;支付超時&#39;,
                isFalse:true
            });
            return;
        }
        let minutes = parseInt(sub/60);
        let Seconds = sub%60;
        let tip = &#39;訂單已提交,請在&#39;+minutes+&#39;分&#39;+Seconds+&#39;秒內(nèi)完成支付&#39;;
        console.log(tip);
        this.setState({
            tip:tip,
            isFalse:false
        });
    },1000);

apache php mysql

相關(guān)文章:

微信公眾號授權(quán)設(shè)置,微信公眾授權(quán)

微信公眾號點擊選單即可開啟並登入微站的實作方法

#相關(guān)影片:

傳智、黑馬微信公眾平臺開發(fā)影片教學(xué)

#

以上是微信公眾號開發(fā),實現(xiàn)倒數(shù)計時的一個功能(純程式碼)的詳細內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
OEX官網(wǎng)入口ios直接進 OEX平臺官網(wǎng)蘋果登錄入口 OEX官網(wǎng)入口ios直接進 OEX平臺官網(wǎng)蘋果登錄入口 Jul 03, 2025 pm 02:06 PM

OEX平臺是一款備受關(guān)注的數(shù)字資產(chǎn)交易平臺,為用戶提供安全、便捷、高效的交易體驗。在這裡,您可以方便地進行比特幣、以太坊等多種主流數(shù)字貨幣的買賣交易,並享受平臺提供的豐富金融衍生品服務(wù)。

以太坊App iOS版如何下載?以太坊官網(wǎng)App使用說明 以太坊App iOS版如何下載?以太坊官網(wǎng)App使用說明 Jul 04, 2025 am 11:48 AM

以太坊官方App並不存在,iOS用戶可通過加密貨幣錢包或交易所App管理ETH。推薦的主流App包括:1. 幣安(Binance),功能強大且集成Web3錢包,適合交易和DeFi;2. 歐易(OKX),具備流暢體驗和Web3集成,支持DeFi與NFT;3. MetaMask,作為核心非託管錢包,是連接DeFi與NFT平臺的必備工具;4. 火幣(HTX),提供豐富交易對和金融衍生品,適合老用戶;5. Trust Wallet,界面簡潔,適合非託管錢包新手;6. Gate.io,適合探索新興幣種的用

如何在iPhone上創(chuàng)建一個聯(lián)繫人組 如何在iPhone上創(chuàng)建一個聯(lián)繫人組 Jul 13, 2025 am 01:17 AM

iPhone不支持在通訊錄應(yīng)用中直接創(chuàng)建聯(lián)繫人組,但可通過以下方法實現(xiàn)類似功能:1.在通訊錄應(yīng)用中使用“群組”功能,點擊“編輯”>“添加群組”創(chuàng)建自定義群組;2.通過編輯每個聯(lián)繫人將其加入對應(yīng)群組;3.若需群發(fā)消息,可在信息應(yīng)用中新建多人對話實現(xiàn);4.使用iCloud或Gmail同步標籤化分組,便於電腦端管理大量聯(lián)繫人。這些方法結(jié)合使用可高效管理聯(lián)繫人群組。

如何檢查iPhone是否已解鎖 如何檢查iPhone是否已解鎖 Jul 15, 2025 am 01:17 AM

TocheckifaniPhoneisunlocked,1)gotoSettings>Cellular>CellularDataOptionsandlookforlabelslike“Unlocked”or“NoSIMrestrictions,”2)insertadifferentcarrier’sactiveSIMcardandseeifthephoneacceptsit,3)usetheIMEInumberononlinetoolslikeIMEI.infotocheckunlo

如何查看iPhone Strain-in Value 如何查看iPhone Strain-in Value Jul 13, 2025 am 01:13 AM

確定iPhone的折舊價值需考慮多個因素並比較不同平臺。 2.首選蘋果官方換購計劃,其流程簡單透明,但最終估值需以設(shè)備實際狀況為準。 3.第三方網(wǎng)站如Gazelle、Swappa等可能提供更高報價,但需注意描述真實狀況並避開收費陷阱。 4.影響價值的核心因素包括型號與存儲容量、設(shè)備狀況、運營商鎖定狀態(tài)等,小問題也可能影響報價。 5.若追求更高回報可選擇私下出售,但需權(quán)衡時間成本與交易風(fēng)險。

如何在iPhone上創(chuàng)建個人聲音 如何在iPhone上創(chuàng)建個人聲音 Jul 11, 2025 am 02:19 AM

要創(chuàng)建iOS17中的PersonalVoice,首先需在設(shè)置中啟用該功能並錄製約五分鐘的聲音模型。具體步驟如下:1.打開“設(shè)置”>“輔助功能”>“旁白”,點擊“PersonalVoice”並選擇“創(chuàng)建PersonalVoice”;2.在安靜環(huán)境中朗讀系統(tǒng)提供的文本,保持語速平穩(wěn);3.創(chuàng)建完成後,可在“旁白”中使用你的個性化語音朗讀消息、通知等,也可切換回默認語音;4.當前僅支持英文和部分語言,中文暫不支持;5.錄音時注意環(huán)境噪音、語調(diào)一致性和存儲空間,並可重新錄製不滿意的內(nèi)容。語音模

如何將聯(lián)繫人從一種iPhone轉(zhuǎn)移到另一種iPhone 如何將聯(lián)繫人從一種iPhone轉(zhuǎn)移到另一種iPhone Jul 12, 2025 am 02:36 AM

換新iPhone時遷移聯(lián)繫人可通過三種方法完成:第一,使用iCloud同步最省心,確保舊機已開啟iCloud通訊錄備份,新機登錄同一賬號並開啟同步即可;第二,用AirDrop適合少量聯(lián)繫人傳輸,兩臺手機設(shè)置AirDrop可見性後通過共享按鈕發(fā)送接收;第三,借助電腦中轉(zhuǎn),Mac或Windows均可,通過Finder或iTunes同步聯(lián)繫人並替換或合併數(shù)據(jù)。選擇適合自己的方式並註意賬號與權(quán)限設(shè)置即可輕鬆完成遷移。

如何在iPhone上清除RAM 如何在iPhone上清除RAM Jul 12, 2025 am 02:30 AM

iPhone的RAM無法手動清理,但可通過以下方法釋放內(nèi)存提升流暢度:1.關(guān)閉後臺應(yīng)用:雙擊Home鍵或從底部上滑暫停關(guān)閉卡片;2.定期重啟手機:每週一次刷新系統(tǒng)狀態(tài);3.減少後臺刷新:進入設(shè)置→通用→後臺App刷新限制應(yīng)用數(shù)量;4.避免同時運行多個高資源應(yīng)用,分階段使用以減輕內(nèi)存壓力。這些操作能有效緩解iPhone內(nèi)存緊張導(dǎo)致的卡頓問題。

See all articles