大家都知道JS的setInterval指定周期執(zhí)行函數(shù),就是每隔一段時(shí)間執(zhí)行一段程序,直到窗口關(guān)閉或程序停止,而小程序沒(méi)有window對(duì)象,可以使用嗎?今天方維網(wǎng)絡(luò)確定的告訴你:可以而且非常有用!
大家先看看setInterval的定義吧。
setInterval() 方法可按照指定的周期(以毫秒計(jì))來(lái)調(diào)用函數(shù)或計(jì)算表達(dá)式。
setInterval() 方法會(huì)不停地調(diào)用函數(shù),直到 clearInterval() 被調(diào)用或窗口被關(guān)閉。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的參數(shù)。
下面說(shuō)說(shuō)平時(shí)使用的地方,根據(jù)小程序開(kāi)發(fā)經(jīng)驗(yàn)
除了倒計(jì)時(shí)、時(shí)鐘等平常使用外,加載流程也是經(jīng)常用到。
比如一般需要會(huì)員登錄的頁(yè)面跳轉(zhuǎn),我們會(huì)先跳到首頁(yè) 再跳到目標(biāo)頁(yè)面。這樣做理由很簡(jiǎn)單,不用沒(méi)個(gè)頁(yè)面做登錄邏輯,還有就是可以回退到首頁(yè),避免迷路。
那么如果做到登錄完成后跳轉(zhuǎn)呢?很多人會(huì)想,只要在登錄完成后執(zhí)行跳轉(zhuǎn)函數(shù) 是不是就可以了,確實(shí)可以,但是這樣寫(xiě)代碼會(huì)很混亂,如果兩者相互獨(dú)立,循環(huán)判斷是否已完成登錄,然后執(zhí)行跳轉(zhuǎn)是不是也可以。
還有就是當(dāng)首頁(yè)用戶還沒(méi)有完成登錄判斷,用戶快速切換在需要登錄的頁(yè)面,這時(shí)候是不是要先提示正在登錄中,然后循環(huán)判斷登錄完成后,執(zhí)行加載數(shù)據(jù)等邏輯。
但是有一點(diǎn)要特別注意的是,當(dāng)頁(yè)面onHide或者onUnload的時(shí)候要取消循環(huán)執(zhí)行,不然會(huì)有意外的BUG出現(xiàn)。