多個頁面刷新倒計時時間會混亂,有沒有遇到的怎么解決
如果你這個定時器同時運行多個,并且$last_time是不同的值,那輸出的end_time肯定是亂的啊。如果是這樣的話這個業(yè)務(wù)邏輯確實有點問題。
@喵了個咪 一個頁面小游戲,頁面有倒計時功能,倒計時歸0游戲結(jié)束,一個頁面單獨打開這個小游戲,無論頁面怎么刷新都沒事,多個頁面打開同一個小游戲,比如有A,B,C三個頁面同時進行這個小游戲,在倒計時的過程中,無論刷新A頁面,B頁面,還是C頁面,其他兩個頁面的倒計時就會停止,當(dāng)前刷新的這個頁面倒計時時間出現(xiàn)混亂也不是當(dāng)前刷新頁面的倒計時,變成B頁面或者C頁面的倒計時。我看了下是Timer:add的問題,沒找到解決方案
大概知道現(xiàn)象了。
刷新頁面會觸發(fā)什么邏輯呢,一般來說一個頁面刷新不會影響其它頁面接收數(shù)據(jù),其它頁面倒計時不會停止才對。是不是onClose里做了什么特殊操作。
我知道了,你定時器里共用了self::$acid這個全局變量,假設(shè)A頁面self::$acid=A,這時候B頁面進入游戲,B頁面的self::$acid=B,那么會出現(xiàn)self::$acid值變?yōu)锽,那么原來定時器里的業(yè)務(wù)邏輯變成向B頁面發(fā)送數(shù)據(jù),A頁面就有可能收不到數(shù)據(jù),因為A頁面的定時器里執(zhí)行Gateway::sendToUid(self::$acid, ..) Gateway::sendToGroup(self::$acid, ..)都變成向B頁面發(fā)送,不是向A頁面發(fā)送了