微信公眾號(hào)開發(fā),實(shí)現(xiàn)倒數(shù)計(jì)時(shí)的一個(gè)功能(純程式碼)
Jul 27, 2018 pm 04:35 PM以下是我自己寫的一個(gè)程式碼,功能是在微信公眾號(hào)開發(fā)過(guò)程中實(shí)現(xiàn)倒數(shù)計(jì)時(shí)的。效果如下,訂單已提交,請(qǐng)?jiān)?分57秒內(nèi)完成付款。純程式碼解析。
開始的想法並沒有考慮頁(yè)面在背景運(yùn)作以及鎖定畫面等情況。程式碼如下:
let interval = setInterval(() => { let {staticTime} = this.state; staticTime = staticTime - 1; if (staticTime <= 0) { clearInterval(interval); this.setState({ tip:'支付超時(shí)', staticTime:0 }); return; } let minutes = parseInt(staticTime/60); let Seconds = staticTime%60; let tip = '訂單已提交,請(qǐng)?jiān)?amp;#39;+minutes+'分'+Seconds+'秒內(nèi)完成支付'; this.setState({ tip:tip, staticTime:staticTime }); }, 1000); 后來(lái)測(cè)試發(fā)現(xiàn)鎖屏或者把頁(yè)面留在后臺(tái),計(jì)算就不對(duì),于是把代碼進(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:'支付超時(shí)', staticTime:0, }); return; } let minutes = parseInt(staticTime/60); let Seconds = staticTime%60; let tip = '訂單已提交,請(qǐng)?jiān)?amp;#39;+minutes+'分'+Seconds+'秒內(nèi)完成支付'; this.setState({ tip:tip, staticTime:staticTime, }); }, 1000); this.listenPageShowHideHandle(); //計(jì)算頁(yè)面在后臺(tái)的時(shí)間
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('時(shí)間差:', 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. **解決方案:** 訂單生成的時(shí)候我們記錄下這個(gè)時(shí)間為A, 時(shí)間間隔為B(3分鐘內(nèi)需要付款,B為3*60*1000),C為現(xiàn)在的時(shí)間。我們使用setInterval 每個(gè)1秒讀取一下時(shí)間。那么倒計(jì)時(shí)時(shí)間 == 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:'支付超時(shí)', isFalse:true }); return; } let minutes = parseInt(sub/60); let Seconds = sub%60; let tip = '訂單已提交,請(qǐng)?jiān)?amp;#39;+minutes+'分'+Seconds+'秒內(nèi)完成支付'; console.log(tip); this.setState({ tip:tip, isFalse:false }); },1000);
apache php mysql
相關(guān)文章:
微信公眾號(hào)授權(quán)設(shè)置,微信公眾授權(quán)
微信公眾號(hào)點(diǎn)擊選單即可開啟並登入微站的實(shí)作方法
#相關(guān)影片:
傳智、黑馬微信公眾平臺(tái)開發(fā)影片教學(xué)
#以上是微信公眾號(hào)開發(fā),實(shí)現(xiàn)倒數(shù)計(jì)時(shí)的一個(gè)功能(純程式碼)的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

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

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

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

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

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

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

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

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

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

在蘋果手機(jī)上購(gòu)買USDT等穩(wěn)定幣需通過(guò)海外Apple ID下載合規(guī)交易所App並完成認(rèn)證後進(jìn)行交易,具體步驟如下:1. 使用非大陸地區(qū)Apple ID登錄App Store;2. 下載推薦平臺(tái)如歐易(OKX)、幣安(Binance)、火幣(HTX)、Gate.io或KuCoin;3. 完成註冊(cè)及身份認(rèn)證(KYC);4. 進(jìn)入“買幣”或“C2C/P2P交易”頁(yè)面選擇USDT;5. 根據(jù)支付方式篩選商家並下單;6. 通過(guò)支付寶、微信或銀行卡付款並確認(rèn)交易;7. 等待商家放幣至賬戶,整個(gè)過(guò)程完成後即可

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

使用iPhone的文件App進(jìn)行文件管理非常簡(jiǎn)單,適合日常任務(wù)。 1.組織文件和文件夾:可通過(guò)“新建文件夾”功能創(chuàng)建文件夾,並支持重命名、移動(dòng)或複製文件,還可按名稱、日期等排序。 2.訪問iCloud和其他雲(yún)服務(wù):可連接iCloudDrive、GoogleDrive、Dropbox等,通過(guò)“瀏覽>位置>編輯”來(lái)管理顯示的服務(wù),並能直接保存文件至雲(yún)存儲(chǔ)。 3.打開和分享來(lái)自其他應(yīng)用的文件:通過(guò)底部分享圖標(biāo)選擇應(yīng)用打開文件,也可通過(guò)郵件、信息或AirDrop共享文件??傊m然功能有限,但其基

若忘記iPhone密碼,可嘗試以下方法:1.使用iTunes/Finder進(jìn)入恢復(fù)模式恢復(fù)設(shè)備(需已連接過(guò)電腦);2.若開啟“查找我的iPhone”,可通過(guò)iCloud抹除設(shè)備;3.聯(lián)繫Apple客服尋求協(xié)助(需提供購(gòu)機(jī)憑證)。以上方法中前兩者會(huì)清除數(shù)據(jù),建議日後定期備份並啟用查找功能。
