我最近开始使用升级模块将 AngularJS 应用程序迁移到 Angular 4。
我的 AngularJS 指令之一使用第三方库 ( ngFlow ) 来使用XMLHttpRequest.send()
. 在混合模式下运行时,上传在 Chrome 和 Firefox 中都可以正常工作。但是,在 Safari 中,应用程序在上传过程中变得非常缓慢,并且浏览器进程达到了 100% 的 CPU 使用率。
使用 Safari 网络工具,我看到有很多globalZoneAwareCallback
来自 zone.js的调用。
我的印象是,Angular 区域正在为XMLHttpRequest
上传期间发生的每个进度事件启动更改检测。
我知道我可以使用runOutsideAngular
fromNgZone
来避免这种情况,但我不知道如何在第三方 AngularJS 库中发生异步调用的情况下使用它,或者如果有任何其他解决方案来解决这个问题。