iOS 12 JS数组Bug,可能带来互联网风波,附解决方案

喜气洋洋,被安利使用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 来修复这个问题,若是不能那可能只能下次版本升级了。以苹果的量级,这个版本可能会有影响不少用户。

相关文章
相关标签/搜索