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

資訊專欄INFORMATION COLUMN

微信公眾號,實現(xiàn)倒計時

sarva / 1249人閱讀

摘要:在微信公眾號開發(fā)過程中要實現(xiàn)倒計時的一個功能。原因是解決方案訂單生成的時候我們記錄下這個時間為,時間間隔為分鐘內(nèi)需要付款,為,為現(xiàn)在的時間。那么倒計時時間,代碼如下支付超時訂單已提交,請在分秒內(nèi)完成支付

在微信公眾號開發(fā)過程中要實現(xiàn)倒計時的一個功能。效果如下:

開始的思路沒有考慮頁面在后臺運(yùn)行以及鎖屏等情況。代碼如下:

let interval = setInterval(() => {
            let {staticTime} = this.state;
            staticTime = staticTime - 1;
            if (staticTime <= 0) {
                clearInterval(interval);
                this.setState({
                    tip:"支付超時",
                    staticTime:0
                });
                return;
            }
            let minutes = parseInt(staticTime/60);
            let Seconds = staticTime%60;
            let tip = "訂單已提交,請在"+minutes+"分"+Seconds+"秒內(nèi)完成支付";
            this.setState({
                tip:tip,
                staticTime:staticTime 
            });
        }, 1000);
后來測試發(fā)現(xiàn)鎖屏或者把頁面留在后臺,計算就不對,于是把代碼進(jì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:"支付超時",
                    staticTime:0,
                });
                return;
            }
            let minutes = parseInt(staticTime/60);
            let Seconds = staticTime%60;
            let tip = "訂單已提交,請在"+minutes+"分"+Seconds+"秒內(nèi)完成支付";
            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 == "hidden"){
        start = new Date().getTime();
    }else if(document.visibilityState == "visible"){
        end = new Date().getTime();
        backGroundTime = Math.floor((end - start)/1000);
        self.setState({backGroundTime});
        console.log("時間差:", 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("sub",sub);
        if(sub<=0){
            clearInterval(interval);
            this.setState({
                tip:"支付超時",
                isFalse:true
            });
            return;
        }
        let minutes = parseInt(sub/60);
        let Seconds = sub%60;
        let tip = "訂單已提交,請在"+minutes+"分"+Seconds+"秒內(nèi)完成支付";
        console.log(tip);
        this.setState({
            tip:tip,
            isFalse:false
        });
    },1000);

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

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

相關(guān)文章

  • 前端資源系列(3)-微信小程序開發(fā)資源匯總

    摘要:微信小程序應(yīng)用號開發(fā)資源匯總文檔工具教程代碼插件組件文檔從搭建一個微信小程序開始小程序開發(fā)文檔小程序設(shè)計指南工具小程序開發(fā)者工具官方支持微信小程序?qū)崟r預(yù)覽的支持的微信小程序組件化開發(fā)框架轉(zhuǎn)在線工具小程序云端增強(qiáng)社區(qū)微信小程序 微信(小程序or應(yīng)用號)開發(fā)資源匯總-文檔-工具-教程-代碼-插件-組件 文檔 從搭建一個微信小程序開始 小程序開發(fā)文檔 小程序設(shè)計指南 工具 小程序開發(fā)者...

    paney129 評論0 收藏0
  • 26天學(xué)通前端開發(fā)(配資料)

    摘要:網(wǎng)上有很多前端的學(xué)習(xí)路徑文章,大多是知識點羅列為主或是資料的匯總,數(shù)據(jù)量讓新人望而卻步。天了解一個前端框架。也可以關(guān)注微信公眾號曉舟報告,發(fā)送獲取資料,就能收到下載密碼,網(wǎng)盤地址在最下方,獲取教程和案例的資料。 前言 好的學(xué)習(xí)方法可以事半功倍,好的學(xué)習(xí)路徑可以指明前進(jìn)方向。這篇文章不僅要寫學(xué)習(xí)路徑,還要寫學(xué)習(xí)方法,還要發(fā)資料,干貨滿滿,準(zhǔn)備接招。 網(wǎng)上有很多前端的學(xué)習(xí)路徑文章,大多是知...

    blair 評論0 收藏0
  • 微信小程序-從零開始制作一個跑步微信小程序

    摘要:微信小程序中的每一個頁面的路徑頁面名都需要寫在的中,且中的第一個頁面是小程序的首頁。真機(jī)運(yùn)行截圖運(yùn)行于,微信版本功能能夠計算里程時間實時獲取跑步路徑有些粗糙思路主要使用了微信小程序的獲取位置和地圖組件。 首發(fā)地址 一、準(zhǔn)備工作 1、注冊一個小程序賬號,得用一個沒注冊過公眾號的郵箱注冊。2、注冊過程中需要很多認(rèn)證,有很多認(rèn)證,比較繁瑣,如果暫時只是開發(fā)測試,不進(jìn)行提審、發(fā)布的話,只要完成...

    zlyBear 評論0 收藏0

發(fā)表評論

0條評論

sarva

|高級講師

TA的文章

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