iOS 9 Safari webkit 仅在 iPad 上崩溃(iPhone 工作正常)
Posted
技术标签:
【中文标题】iOS 9 Safari webkit 仅在 iPad 上崩溃(iPhone 工作正常)【英文标题】:iOS 9 safari webkit crash only on iPad (iPhone works fine) 【发布时间】:2015-12-07 23:02:26 【问题描述】:我有一个使用 python/django 后端的 Web 应用程序,并在前端使用了大量的 CSS3 动画和大量的 javascript。这个问题让我有点发疯,所以我只是想看看是否有人对此有任何想法。
该网站在运行 ios 9.2 的 iPad mini 上崩溃了 webkit。 Safari 和 chrome 都会崩溃。 Safari 提供以下通知:
A problem occurred with this webpage so it was reloaded
崩溃发生在内容显示之后,然后才触摸任何东西。有时它会重新加载,直到:
A problem repeatedly occurred on ...
其他时候它最终会加载页面,然后在滚动页面后崩溃。在极少数情况下,网站会在清除浏览器缓存后运行。
它在这些设备上完美运行:
iPhone 3 iOS 7 iPhone 4 iOS 7 iPhone 5 iOS 9.2 iPhone 6 iOS 9.2 机器人 Windows 移动版 所有 Windows 和 Mac 桌面 Chrome、Safari、IE、Firefox没有明显的内存泄漏,如时间线所示,包括页面加载和滚动浏览网站内容,动态将 javascript 对象和元素添加到 dom:
导致问题的一般程序:
收集现有 DOM 元素,其中包含具有 css backgound-image:url() 的元素 从 DOM 中删除现有元素。 然后将元素重新插入到新容器元素中的 DOM 中【问题讨论】:
【参考方案1】:我相信我找到了错误...
当您在包含 css background-image:url(),
和 z-index:-1;
的元素上应用 css transform:translate3d();
时,显然 Safari 9(仅限 iPad)不喜欢它
删除 translate3d 改善了问题,但性能下降 可怕,仍然随机崩溃。
删除背景图像完全解决了问题,但 要求。
最后,我能够保留背景图像和 translate3d 只要我删除了 z-index。
简而言之,如果您在 ipad 上的 Safari 9 中遇到持续崩溃,请尝试删除所有负 z-index 并查看是否可以解决问题。
【讨论】:
以上是关于iOS 9 Safari webkit 仅在 iPad 上崩溃(iPhone 工作正常)的主要内容,如果未能解决你的问题,请参考以下文章
SafariServices,以及WebKit在iOS 9上的新变化
iOS8 Safari -webkit-overflow-scrolling:触摸;问题
webkit-backface-visibility 崩溃 safari 和 chrome (IOS)
macOS+iOS:Safari和Webkit停止支持SHA-1证书了