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

news/2024/7/20 20:52:33 标签: JavaScript, iOS, 前端, Apple

喜气洋洋,被安利使用iOS12,红红火火,更新最新版本。

网络上已经有人遇到 iOS 数组相关的一个Bug,似乎会酿成整个互联网风波。

Array state will be cached in iOS 12 Safari, is bug or feature? -- stackoverflow

iOS 12 的 safari 有哪些变化吗?今天发现了一个 javascript 的问题 - V2EX

先来使用 IOS 12 体验一下:

这是原网页

这是修复后的

点击网页上方的 Click Refresh,可以看到,网页刷新后,原网页中,数组的顺序在第二次访问网页的时候,变成了倒序,即便是关闭网页重新进来,也会是倒序的。如果反复刷新几次,数组将会反复倒序。看起来是 Webview 将这个数组缓存了。

通过测试,Array的其他API并没有这种问题,包括手动改变数组中的元素顺序,都不会出现这种问题,目前只发现了使用 reverse 出现这种问题。

当我们使用 reverse 去改变数组顺序的时候,那么数组的顺序一定对我们来说特别重要,如果第二次进来还是最后的顺序,这将对我们的应用产生非常大的影响!

紧急写了一个文件来应对这个问题,如果有必要,大家可以使用,如果有问题欢迎大家PR。 array-reverse-ios12

不知苹果是否可以通过 HotPatch 来修复这个问题,如果不能那可能只能下次版本升级了。以苹果的量级,这个版本可能会有影响很多用户。


http://www.niftyadmin.cn/n/1732295.html

相关文章

9月,水了几个大中厂前端面试的一些总结分享 | 掘金技术征文

写在前面 工作吧,我觉得就像谈恋爱,不一定是找高富帅或者白富美,互相确认过眼神是对的人就可以~而面试的自信和对工资的要求,源于你过硬的基础和平时的思考、积累以及总结~ 8月底离职,其实是裸辞,当然大概是…

使用jQuery的message插件实现右下角弹出消息框

有时在页面加载的时候,需要在页面的右下角弹出一个小的提示框,显示一些提示信息给用户,通过使用jQuery的message插件,可以很方便的实现这个效果,在使用之前先介绍一下message插件中的方法的使用。 1.$.messager.lays(w…

3D探索——Web 3D哪家强?

腾讯DeepOcean原创文章:http://dopro.io/web-3d-power.html 得益于手机厂商爆炸式的配置堆砌与移动互联时代到来,html在手机上的效果愈加丰富,Web开发者已经不满足于2D效果的实现,而把目标放到了更加炫酷的3D效果上。 在Web3D百花…

jquery中extend和fn.extend的使用

jQuery为开发插件提供了两种方法,分别是: jQuery.fn.extend(object); jQuery.extend(object); jQuery.extend(object); 为扩展jQuery类本身.为类添加新的方法。 jQuery.fn.extend(object);给jQuery对象添加方法。 jQuery.extend(object); 为jQuery类添…

reusable:前端可复用代码目录结构的设计

前端开发的流程 前端开发的主要流程就是取服务端的数据处理后渲染到本地ui,或者取本地ui的数据处理后发送到服务端,本地可能会保存一份副本。 图中只是简单花了一下主流程,可能涉及到一些store和本地localStorage的交互,组件和具…

jquery.cookie使用方法

jquery.cookie是一个轻量级的cookie插件&#xff0c;可以读取&#xff0c;写入&#xff0c;删除cookie。 jquery.cookie.js的配置&#xff1a; 首先包含jQuery的库文件&#xff0c;在后面包含jquery.cookie.js的库文件。 <script type"text/javascript" src&quo…

IE6 png背景图片显示不正常处理

现在web设计&#xff0c;画面是越来越炫 但是使用了透明的背景图&#xff0c;在IE6下&#xff0c; 在ie78 ff等浏览器显示正常。 解决办法&#xff1a; body{ background-color:#CCC;} 一般普通写法如下&#xff1a; div.bg1{ background:url(logo.png) no-repeat center;width…

React 的几种条件渲染以及选择

对于一个展示页面来讲, 通常有好几种展示状态(以列表页为例): 数据为空, 空页面 取数据时发生错误, 错误页面 数据正常 加载状态 针对以上三种情况, react渲染列表的时候要正确判断并渲染出相应的视图, 也就是条件渲染. 不同于vue的v-if, v-show等框架提供的api, react的条件渲…