2 回答

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超10個(gè)贊
我的大兄弟,你的reload會(huì)導(dǎo)致頁(yè)面刷新,頁(yè)面上所有的東西生命周期都會(huì)重來(lái)一次
你的shua函數(shù)自然也是
如果頁(yè)面不刷新,調(diào)用某個(gè)函數(shù)的話(huà),那么這個(gè)函數(shù)(也包括setInterval和settimeout)在它的生命周期當(dāng)中都是存在的,所以會(huì)重復(fù)的調(diào)用,故改成下面這樣 setInterval是有效果的:
function invoke(){ alert( "invoke" ); } function start(){ setInterval(invoke,2000) } |
就像前面說(shuō)的,當(dāng)這個(gè)程序調(diào)用start正常運(yùn)行的時(shí)候,你一刷新頁(yè)面,那么這個(gè)循環(huán)調(diào)用的效果就沒(méi)了,你必須調(diào)用一次start才可以正常循環(huán)觸發(fā),因?yàn)轫?yè)面刷新,頁(yè)面上所有的內(nèi)容(DOM,JS,CSS)都會(huì)重新構(gòu)造一遍

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超5個(gè)贊
如果前兩個(gè)if滿(mǎn)足相應(yīng)的條件就不會(huì)執(zhí)行第3個(gè)if,因?yàn)槊總€(gè)if語(yǔ)句里面都有返回語(yǔ)句(return),而與if語(yǔ)句的先后次序無(wú)關(guān)。
添加回答
舉報(bào)