[討論] JS 時間計算常見問題

看板Ajax作者 (自立而後立人)時間11年前 (2014/05/23 19:09), 編輯推噓5(5010)
留言15則, 3人參與, 最新討論串1/4 (看更多)
簡易 js 考題(申論題) http://jsfiddle.net/JR5Xk/1/ 如果你看到這個範例跟這個程式碼, 說不出為什麼這樣計算時間是「有嚴重問題的」, 我會覺得你的 JS 基礎還有需要加強...... 1.setInterval(or setTimeout) 跑的時間差不是精準的如你設定 2.browser focus 與否 可能會影響 setInterval 的行為 推薦解法是用先後時間的毫秒數差計算差異時間, 而不是按照被跑幾次來推斷時間。 如此例 http://jsfiddle.net/JR5Xk/3/ 其實這是很基本的觀念, 但普遍看到實作出來的碼表或倒數都常常有這個問題, 所以只好再撰文呼籲一次... -- 網頁上拉近距離的幫手 實現 GMail豐富應用的功臣 數也數不清的友善使用者體驗 這就是javascript 歡迎同好到 AJAX 板一同討論。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.230.48.81 ※ 文章網址: http://www.ptt.cc/bbs/Ajax/M.1400843375.A.F83.html

05/23 20:46, , 1F
requestAnimationFrame
05/23 20:46, 1F

05/23 20:50, , 2F
最近剛好在看 canvas 如何做動畫
05/23 20:50, 2F

05/23 20:53, , 3F

05/23 21:12, , 4F
那是給動畫用的
05/23 21:12, 4F

05/23 21:12, , 5F
純計算時間的話 用performance
05/23 21:12, 5F

05/23 21:14, , 6F
不過要是瀏覽器不支援還只是能用Date當fallback就是
05/23 21:14, 6F

05/23 21:19, , 7F
我就是剛好在做動畫阿 XD
05/23 21:19, 7F

05/26 11:59, , 8F
S大 那個東西跟時間有關的 只適算FPS = =" 要逆向過來會卡在
05/26 11:59, 8F

05/26 11:59, , 9F
你沒辦法肯定下一秒的FPS應該是多少...(雞生蛋蛋生雞問題)
05/26 11:59, 9F

05/26 17:14, , 10F
樓上在說啥...
05/26 17:14, 10F

05/26 18:34, , 11F
我知道 只是剛好我在看所以提出來而已 最後附上的網址
05/26 18:34, 11F

05/26 18:34, , 12F
有很多種計算時間的方法 例如 performance.now()
05/26 18:34, 12F

05/26 18:34, , 13F
但是要做好 fallback 就是了
05/26 18:34, 13F

05/26 18:36, , 14F
其實requestAnimationFrame都需要fallback了www
05/26 18:36, 14F

05/26 18:37, , 15F
通通都要 fallback 而且 Server-side 又有另一套寫法 (倒
05/26 18:37, 15F
文章代碼(AID): #1JVonl-3 (Ajax)
文章代碼(AID): #1JVonl-3 (Ajax)