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

Javascript iOS 9 safari webkit仅在iPad上崩溃(iPhone工作正常),javascript,ios,css,ipad,webkit,Javascript,Ios,Css,Ipad,Webkit,我有一个使用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 p

我有一个使用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 ...
其他时候,它最终会加载页面,然后在滚动页面后崩溃。在某些罕见的情况下,在清除浏览器缓存后,站点将正常工作

它可以在以下设备上完美工作:

  • iPhone3iOS7
  • iPhone4iOS7
  • iPhone5iOS9.2
  • iPhone6iOS9.2
  • 安卓
  • windows mobile
  • 所有Windows和Mac台式机Chrome、Safari、IE、Firefox
如时间线所示,没有明显的内存泄漏,该时间线包括页面加载和在站点内容中滚动,动态地将javascript对象和元素添加到dom中:

引起问题的一般程序:

  • 收集现有DOM元素,其中包含具有css背景图像的元素:url()
  • 从DOM中删除现有元素
  • 然后将元素插入到新容器元素中的DOM中

我相信我找到了漏洞

显然,Safari 9(仅限iPad)不喜欢应用css
transform:translate3d()背景图像的元素上的code>:url(),
带有
z索引:-1

  • 删除translate3d改善了问题,但性能有所下降 很可怕,仍然有随机崩溃

  • 删除背景图像完全解决了这个问题,但这是一个巨大的挑战 要求

  • 最后,我能够保留背景图像和翻译的3D 只要我删除了z索引

所以简而言之,如果你在ipad上的Safari 9中遇到了一致的崩溃,那么试着删除所有的负z指数,看看是否可以修复它