嗨,我有一个网络应用程序,应该能够在智能手机和台式机浏览器上运行。虽然我预计在像iPhone这样的小设备上会遇到一些奇怪的行为,但我相当有信心它可以在Android Galaxy Tab上良好运行,这是我目前可用于测试的Android设备。
现在我已经在Galaxy Tab上安装了一堆浏览器来进行测试:
- Android原生浏览器
- Chrome for Android
- Firefox for Android
在台式机上,我使用的是:
- Firefox
- Google Chrome
最后,我有一台iPhone可以进行测试。
该网站使用HTML5画布进行基于像素和精灵的绘图,没有花哨的转换、滤镜或效果,主要是简单的路径和多边形。 我确实监听触摸事件并使用requestAnimationFrame
进行正确的重绘。
总体而言,该应用程序在台式机浏览器上运行良好,在iOS Safari(iPhone)和Firefox-on-Android上也运行良好。但是,Android原生浏览器给我带来了麻烦。 我已经设置好了屏幕在javascript不响应时刷新为红色,几乎每次触摸屏幕时它都会闪烁。
所以我想知道Android原生应用程序和HTML5是否存在任何已知的问题。 由于原生浏览器的名称不存在,因此很难在Google上搜索相关信息。您有任何建议可以获取更多信息吗?您有任何想法是什么导致本机Android浏览器延迟的原因?
关于这个问题有一些想法:
iOS不支持requestAnimationFrame,因此我使用基于timeout的替代方案进行了替换。如果我在Android的原生浏览器上使用该替代方案,则问题仍然存在。
我经常使用AJAX(Google Closure Xhrio)从服务器检索数据。是否可能数据检索回调正在阻塞我的事件管道?
是否已知日志控制台消息(console.log)会减慢应用程序? 它们是否会触发浏览器重新运行DOM树或其他任何相关操作?