iOS的Javascript DOM“冻结?”

这里有几个问题:

  1. 反正有没有让iOS冻结在页面上的JavaScript滚动?

  2. 当你在另一个选项卡或者如果你切换应用程序时,iOS会冻结JavaScript吗?

  3. iOS上还有其他主要的JavaScript限制吗?

iOS 6.x会暂停所有的事件定时器,以响应像滚动这样的触摸事件,并且一旦事件完成,倾向于不会再次启动所有的定时器。 这是一个众所周知的iOS 6的bug是超级烦人的。 它几乎打破了视差和东西。 有些人采取build立自己的滚动function。

这里是另一个StackOverflow在同一主题: iOS 6 safari,setInterval不会被解雇

另一个: setInterval在iPhone / iPad(移动Safari)在滚动期间暂停

这里是最接近你的错误报告(苹果公司不会公布错误报告,以维持完美的幻想,所以开发者做了自己的错误网站): http : //openradar.appspot.com / 12756410

这段代码将在页面滚动过程中解冻由iOS损坏/丢失/毁坏的定时器: https : //gist.github.com/ronkorving/3755461

这是修复冻结的另一个尝试: 如果在其中有setTimeout,则不调用iOS 6 js事件函数

不幸的是,在页面滚动的时候,你不能做任何事情来触发事件。 像滚动页面时淡出一个返回顶部的链接。 当涉及到滚动,iOS6是无法揉揉肚子,拍拍脑袋。 (iOS5工作正常,顺便说一句,这是一个回归)

为了回答第三个问题,一个体面的限制是, 有时innerHTML上不起作用 。 从接受的答案:

当手机的CPU非常繁忙(比如说100%)时会发生这种情况。 然后,渲染引擎有时会忘记innerHTML设置。

包含在我的统一项目中的解决scheme是testingchildNodes中是否有元素,否则再次应用它。