计时器在 Android 7 Webview Ionic App 中滚动时冻结

Timer freezes on scroll in Android 7 Webview Ionic App

我有一个 Ionic1 应用程序,我在一个视图上使用了一个离子计时器,在同一视图的下方是一个带有项目列表的离子滚动元素。

示例代码:

<ion-content scroll="false">
  <ion-timer class="timer" duration="duration" ispause="isPause" opts="ionTimerOpts""></ion-timer>
  <ion-scroll>
    //list content here...
  </ion-scroll>
</ion-content>

计时器使用 $interval 刷新并倒计时一个变量。

在 Android 7 Google 将 Webview 更改为 Chrome 并且我遇到了一个奇怪的错误。当用户滚动列表时,计时器会冻结几秒钟,然后再次倒计时。这不是每次滚动都会发生,但经常发生,所以我猜这与系统资源管理有关。在旧的 Android 系统和 iOS 上不会发生这种冻结。

所以我正在寻求帮助以找到解决方案。我想我可以改变定时器来计算到设定时间戳的距离,这样定时器就可以及时保持正确,但是 ui 冻结仍然存在,不应该是这样。

编辑:

看来,chrome 浏览器引擎将间隔的优先级设置得很低,这就是为什么间隔对于计时器来说不够准确,我的解决方案是以我模拟的方式更改计时器代码具有使用超时的递归函数的间隔。

似乎 chrome 浏览器引擎将间隔的优先级设置得很低,这就是为什么间隔对于计时器来说不够准确,我的解决方案是以我模拟的方式更改计时器代码具有使用超时的递归函数的间隔。