iOS 9 safari webkit 仅在 iPad 上崩溃(iPhone 工作正常)

iOS 9 safari webkit crash only on iPad (iPhone works fine)

我有一个使用 python/django 后端的 Web 应用程序,使用了相当数量的 CSS3 动画,在前端使用了大量 javascript。这个问题让我有点抓狂所以我只是想看看是否有人对此有任何想法。

站点在 iPad mini 运行 iOS 9.2 上使 webkit 崩溃。 Safari 和 chrome 都崩溃了。 Safari 提供以下通知:

A problem occurred with this webpage so it was reloaded

在触摸任何内容之前显示内容后立即发生崩溃。有时它会重新加载直到:

A problem repeatedly occurred on ...

其他时候它最终会加载页面,然后在滚动页面后崩溃。在极少数情况下,网站会在清除浏览器缓存后正常运行。

它在这些设备上完美运行:

没有明显的内存泄漏,如时间线所示,包括页面加载和滚动站点内容,动态地将 javascript 对象和元素添加到 dom:

导致问题的一般过程:

我相信我找到了错误...

显然 Safari 9(仅 iPad)不喜欢在包含 css background-image:url(), 的元素上应用 css transform:translate3d(); z-index:-1;

  • 删除 translate3d 改善了问题,但性能 太可怕了,仍然会随机崩溃。

  • 删除背景图像完全解决了问题,但是 要求.

  • 最后,我能够保留背景图像和 translate3d 只要我删除了 z-index.

简而言之,如果您在 ipad 上的 Safari 9 中遇到一致的崩溃,那么请尝试删除所有负 z-index 并查看是否可以解决问题。