微信公眾號(hào)開發(fā),實(shí)現(xiàn)倒計(jì)時(shí)的一個(gè)功能(純代碼)
Jul 27, 2018 pm 04:35 PM以下是我自己編寫的一個(gè)代碼,功能是在微信公眾號(hào)開發(fā)過程中實(shí)現(xiàn)倒計(jì)時(shí)的。效果如下,訂單已提交,請(qǐng)?jiān)?分57秒內(nèi)完成支付。純代碼解析。
開始的思路沒有考慮頁面在后臺(tái)運(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); 后來測(cè)試發(fā)現(xiàn)鎖屏或者把頁面留在后臺(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ì)算頁面在后臺(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í)現(xiàn)方法
相關(guān)視頻:
以上是微信公眾號(hào)開發(fā),實(shí)現(xiàn)倒計(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脫衣機(jī)

Video Face Swap
使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

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

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

禪工作室 13.0.1
功能強(qiáng)大的PHP集成開發(fā)環(huán)境

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

SublimeText3 Mac版
神級(jí)代碼編輯軟件(SublimeText3)

iPhone不支持在通訊錄應(yīng)用中直接創(chuàng)建聯(lián)系人組,但可通過以下方法實(shí)現(xiàn)類似功能:1.在通訊錄應(yīng)用中使用“群組”功能,點(diǎn)擊“編輯”>“添加群組”創(chuàng)建自定義群組;2.通過編輯每個(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)系人可通過三種方法完成:第一,使用iCloud同步最省心,確保舊機(jī)已開啟iCloud通訊錄備份,新機(jī)登錄同一賬號(hào)并開啟同步即可;第二,用AirDrop適合少量聯(lián)系人傳輸,兩臺(tái)手機(jī)設(shè)置AirDrop可見性后通過共享按鈕發(fā)送接收;第三,借助電腦中轉(zhuǎn),Mac或Windows均可,通過Finder或iTunes同步聯(lián)系人并替換或合并數(shù)據(jù)。選擇適合自己的方式并注意賬號(hào)與權(quán)限設(shè)置即可輕松完成遷移。

在蘋果手機(jī)上購(gòu)買USDT等穩(wěn)定幣需通過海外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交易”頁面選擇USDT;5. 根據(jù)支付方式篩選商家并下單;6. 通過支付寶、微信或銀行卡付款并確認(rèn)交易;7. 等待商家放幣至賬戶,整個(gè)過程完成后即可

iPhone的RAM無法手動(dòng)清理,但可通過以下方法釋放內(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密碼,可嘗試以下方法:1.使用iTunes/Finder進(jìn)入恢復(fù)模式恢復(fù)設(shè)備(需已連接過電腦);2.若開啟“查找我的iPhone”,可通過iCloud抹除設(shè)備;3.聯(lián)系A(chǔ)pple客服尋求協(xié)助(需提供購(gòu)機(jī)憑證)。以上方法中前兩者會(huì)清除數(shù)據(jù),建議日后定期備份并啟用查找功能。

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