NgZone 能否用于检测 Angular 应用程序的 "idle" 状态?
Can NgZone be used to detect "idle" state of Angular application?
假设我们有 Angular 5+ 应用程序,我想 运行 某些 "jobs"(比如通过 API 调用从服务器加载更多数据)当我们基本确定用户没有做任何事情时的空闲时间(因为我们也通过输入事件控制输入)。
我们可以使用 NgZone.hasPendingMicrotasks & NgZone.hasPendingMacrotasts 吗?
实际例子:
- Angular 应用程序使用 MixPanel 报告使用统计信息
- 实现目前以堆栈的形式缓冲数据,只有在堆栈已满(超过一定限制)时才将其发送到 MixPanel API
- 理想情况下,它还应该满足另一个条件(除了堆栈已满)- 目前没有 activity。
我知道这听起来像是微优化,而且我想有更好的方法来处理这个问题(也许是工人),但我想知道是否有办法了解 "busy"应用程序正在并可能利用空闲时间来完成某些任务。
您可以使用 ngZone.onStable
和 ngZone.onUnstable
发射器来做到这一点。
假设我们有 Angular 5+ 应用程序,我想 运行 某些 "jobs"(比如通过 API 调用从服务器加载更多数据)当我们基本确定用户没有做任何事情时的空闲时间(因为我们也通过输入事件控制输入)。
我们可以使用 NgZone.hasPendingMicrotasks & NgZone.hasPendingMacrotasts 吗?
实际例子:
- Angular 应用程序使用 MixPanel 报告使用统计信息
- 实现目前以堆栈的形式缓冲数据,只有在堆栈已满(超过一定限制)时才将其发送到 MixPanel API
- 理想情况下,它还应该满足另一个条件(除了堆栈已满)- 目前没有 activity。
我知道这听起来像是微优化,而且我想有更好的方法来处理这个问题(也许是工人),但我想知道是否有办法了解 "busy"应用程序正在并可能利用空闲时间来完成某些任务。
您可以使用 ngZone.onStable
和 ngZone.onUnstable
发射器来做到这一点。