我想弄清楚NgZone是如何工作的。下面的例子有意义吗?我读到每个xhr调用都会触发变更检测。这对我来说很有意义。是吗?
persistData() {
this.ngZone.runOutsideAngular(() => {
this.http.callBackend... // return value is not relevant
});
}
是的,这意味着当callBackend返回时,Angular不会运行变更检测。
但是你需要确保你自己处理所有你正在寻找的更新
Angular使用zone.js。js包装了所有的异步操作(包括XHR更改事件,包括你的案例),然后触发一个更改检测。如果您有很多异步操作,那么更改检测可能会经常发生,并且您会在正在进行的性能中感受到它,一切都会变慢。