为啥 Safari Mobile 在 iOS 8 上处理许多输入字段时遇到问题
Posted
技术标签:
【中文标题】为啥 Safari Mobile 在 iOS 8 上处理许多输入字段时遇到问题【英文标题】:Why does Safari Mobile have trouble handling many input fields on iOS 8为什么 Safari Mobile 在 iOS 8 上处理许多输入字段时遇到问题 【发布时间】:2014-10-01 19:57:11 【问题描述】:ios 8.0/8.0.1/8.0.2 有这个问题。
我有一个包含 70 个简单文本输入的页面:
<input class="" type="text">
在 iOS 7 上,该页面没有问题。但在 iOS 8 上,选择并输入一个字段会导致 iPad 变得缓慢和滞后。
你可以在这个jsFiddle看到一个问题的例子
有人知道这个问题的解决方法吗???
【问题讨论】:
桌面版 Safari 11.0.3 也会出现这种情况。 【参考方案1】:似乎问题与作为文档或表单一部分的文本输入的数量有关。
我通过在一小组文本输入周围放置
【参考方案2】:更新: 这似乎在 iOS 8.1.1 测试版中得到解决。它似乎没有得到修复,基于 cmets。 :(
它也在 8.1 测试版中。你应该file a radar。
某些东西会导致整个网页重新加载或 Safari 挂起。例如,访问http://getemoji.com/ 并开始在搜索框中输入内容。如果不重新加载页面,您无法在 iOS 8.x 设备上执行此操作。
值得注意的是,Chrome 和 Mercury 运行良好,因此您可以建议您的用户切换到基于 UIWebView
的第三方浏览器。 (我没有测试过WKWebView
。)
【讨论】:
是的,我还注意到它适用于 Chrome 和其他一些第三方浏览器。不幸的是,强制用户下载另一个浏览器并不是真正的最佳解决方案。 我遇到了同样的问题,将我的设备升级到 8.1.1 看看是否已修复。不是。也许有一点点改进,但在输入繁重的页面上仍然令人难以置信的笨拙和缓慢。还不知道该怎么做,但我建议其他有类似问题的人不要对 8.1.1 寄予太大希望。 8.1.1 不能解决问题。目前,如果用户正在使用 Safari 并且拥有 8+,我会将他们带到一个页面,通知他们 IOS 8 目前不支持 Safari。如果他们想使用该服务,他们必须安装 Google Chrome(或使用台式电脑)。在 Apple 推出修复程序之前,这似乎是我能做的最好的事情。 一年后仍然遇到这个问题,真的不想将所有输入包装在我已经为此苦苦挣扎了好几个小时,直到我在此页面上找到了解决方案。谢谢!这是我对 Design Navigator 建议的解决方案的实现:
$(document).ready(function()
var isSafari = navigator.vendor && navigator.vendor.indexOf('Apple') > -1 && navigator.userAgent && !navigator.userAgent.match('CriOS');
if (isSafari)
$('#container input[type="text"]').wrap('<form />');
【讨论】:
以上是关于为啥 Safari Mobile 在 iOS 8 上处理许多输入字段时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章
为啥 Safari Mobile 中无法播放网络音频 api 振荡器?
iPhone 6+ Mobile safari iOS 8 Landscape with tabs open and Bootstrap navbar-fixed-top 在打开时不会关闭
iOS 7 Safari 干扰 jQuery Mobile 页脚