喜氣洋洋,被安利使用iOS12,紅紅火火,更新最新版本。javascript
網絡上已經有人遇到 iOS 數組相關的一個Bug,彷佛會釀成整個互聯網風波。html
Array state will be cached in iOS 12 Safari, is bug or feature? -- stackoverflowjava
iOS 12 的 safari 有哪些變化嗎?今天發現了一個 javascript 的問題 - V2EXios
先來使用 IOS 12 體驗一下:git
這是原網頁github
這是修復後的數組
點擊網頁上方的 Click Refresh,能夠看到,網頁刷新後,原網頁中,數組的順序在第二次訪問網頁的時候,變成了倒序,即使是關閉網頁從新進來,也會是倒序的。若是反覆刷新幾回,數組將會反覆倒序。看起來是 Webview 將這個數組緩存了。緩存
經過測試,Array的其餘API並無這種問題,包括手動改變數組中的元素順序,都不會出現這種問題,目前只發現了使用 reverse 出現這種問題。網絡
當咱們使用 reverse 去改變數組順序的時候,那麼數組的順序必定對咱們來講特別重要,若是第二次進來仍是最後的順序,這將對咱們的應用產生很是大的影響!測試
緊急寫了一個文件來應對這個問題,若是有必要,你們可使用,若是有問題歡迎你們PR。 array-reverse-ios12
不知蘋果是否能夠經過 HotPatch 來修復這個問題,若是不能那可能只能下次版本升級了。以蘋果的量級,這個版本可能會有影響不少用戶。