iOS 6 safari,setInterval不会被解雇

看来,如果我滚动windowwindow.setInterval不会附加/发生滚动正在发生或之后。 有没有其他人看到同样的问题?

我的意思是…

  • 这可能是什么原因造成的?
  • 我能做些什么来解决这个问题?

iOS响应用户触摸停止几乎所有的事情,以保证它的响应。 setInterval问题是已知的,似乎没有解决方法。

在iPhone / iPad(移动Safari)中,setInterval在滚动期间暂停

编辑

在“冻结”期间,一旦用户释放屏幕,计时器将不能赶上。 错过的事件不会延期,但完全丢失(一个错误)。

发现这个(可怕但令人惊叹)的解决方法,它在iOS 6.0中为我工作:

https://gist.github.com/3755461

我不完全确定,但你可以使用setTimeout而不是setInterval ? 无论如何,使用setInterval通常是不好的做法。

 var delay = 100; (function callee() { setTimeout(callee, delay); })(); 

iOS6 Safari遇到了一个错误,它会导致在页面滚动时创build定时器。

通过在滚动完成后重新创build定时器,可以解决kTmnh提供的这个问题

https://gist.github.com/3798925