仅在iPad上出现iOS 9 Safari WebKit崩溃(iPhone正常工作)

3
我有一个网站应用程序,使用python/django后端,并在前端使用了相当数量的CSS3动画和大量的javascript。这个问题让我有点疯狂,所以我想看看是否有人对此有任何想法。在运行iOS9.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 - Android - Windows Mobile - 所有Windows和Mac桌面电脑Chrome,Safari,IE,Firefox
时间线显示没有明显的内存泄漏,包括页面加载和滚动网站内容,该内容动态添加JavaScript对象和元素: Page load and scrolling through site 导致问题的一般过程:
- 收集包含css背景图片url()元素的现有DOM元素。 - 从DOM中删除现有元素。 - 然后将元素插入到新的容器元素中。
1个回答

4

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

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

  • 删除translate3d可以改善问题,但性能很差,并且仍会随机崩溃。

  • 删除background-image完全解决了问题,但是这是一个要求。

  • 最后,只要删除z-index,就可以保留背景图像和translate3d。

简而言之,如果您在仅适用于iPad的Safari 9中经常遇到崩溃,请尝试删除所有负z-index,并查看是否解决了该问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接