iOS Javascript DOM"冻结?"

Jam*_*yle 5 javascript dom freeze ios

这里有几个问题:

  1. 反正是否有滚动保持iOS在页面上冻结javascript?

  2. 当您在另一个标签中或切换应用时,iOS会冻结javascript吗?

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

mrb*_*000 6

iOS 6.x会暂停所有事件计时器以响应滚动等触摸事件,并且在事件完成后不会再次启动所有计时器.这是一个众所周知的iOS 6漏洞,非常烦人.它几乎打破了视差和东西.有些人已经开始建立自己的滚动功能.

这是关于同一主题的另一个StackOverflow: iOS 6 safari,setInterval不会被触发

另一个: 在滚动过程中,setInterval在iphone/ipad(移动版Safari)中暂停

这是你最接近它的错误报告(苹果不会公开bug报告以保持完美的错觉,因此开发人员制作了自己的bug网站):http: //openradar.appspot.com/12756410

这段代码将解冻在页面滚动期间被iOS破坏/丢失/破坏的计时器:https: //gist.github.com/ronkorving/3755461

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

不幸的是,在页面滚动时,您无法触发事件.就像在向上滚动页面时淡出一个从顶部到顶部的链接.在滚动方面,iOS6无法揉搓它的肚子并轻拍它的头部.(iOS5工作正常,顺便说一句.这是回归)


sdl*_*rhc 1

要回答第三个问题,一个相当大的限制是有时innerHTML只是简单的不起作用。从接受的答案来看:

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

我的 unify 项目中包含的解决方案是测试 childNodes 中是否有元素,否则再次应用它。