我们刚刚获得了一台三星Galaxy S4,用于测试我们的移动网站(运行最新的Touch-Wiz Android 4.2.2 - build JDQ39)。
我们马上就注意到了我们网站中的一些主要问题。经过一些调查,我发现这似乎是由于window.setInterval(fn, repeatInterval)
没有重复,并且只调用了传递的函数一次。
请注意,我们使用setInterval
可能没有问题,因为我们的代码可以在我们所有的其他设备(很多)上运行,在同一设备上的chrome浏览器和桌面浏览器上都可以工作。
我已经搜索过了,但是找不到任何关于这个问题的信息。对我来说,这么大的bug不会产生更多的噪音,对我来说似乎很奇怪。
我的问题是:其他人见过这个问题吗?它是4.2.2上的默认浏览器,还是Touch-Wiz特有的问题?你找到一个优雅的变通方法了吗?
我已经想出了一个使用自持久化setTimeout(s)
的变通方法,但它有点脏,我不想这样做。
发布于 2013-07-24 13:56:08
事实证明,这根本不是setInterval
的错。奇怪的是,eval.call(window, 'some js');
似乎停止了在这款特定浏览器上运行的所有时间间隔。真的不明白是怎么回事。这是我们唯一见过的手机--在S3 (安卓4.2.1)上的普通浏览器上不会发生这种情况。
附注:我们做eval.call
的唯一原因是允许制作横幅广告,它使用document.write
在一个单页面动态加载应用程序中添加脚本。我更希望它不在那里。
https://stackoverflow.com/questions/17617608
复制