0
我陷入困境。我有一個龐大的視圖模型,有大量的用戶可觀察陣列。當可觀察性發生變化時,我想刷新每次通知給訂閱者之間的UI,以便UI仍然負責,而敲除仍在計算訂閱者。淘汰用戶界面,而淘汰賽仍在更新用戶
有什麼辦法可以做到這一點?
謝謝!
我陷入困境。我有一個龐大的視圖模型,有大量的用戶可觀察陣列。當可觀察性發生變化時,我想刷新每次通知給訂閱者之間的UI,以便UI仍然負責,而敲除仍在計算訂閱者。淘汰用戶界面,而淘汰賽仍在更新用戶
有什麼辦法可以做到這一點?
謝謝!
要使UI更具響應性,請使用the "throttle" extender。通過這種方式,多個更改將重新評估爲單個UI更改。
對於UI不凍結,您需要中斷JavaScript過程。所以UI可以更新。該辦法做到這一點,在你的用戶,而不是立即做處理延遲它:
model.value.subscribe(function(newValue){
setTimeout(function(){
doWork(newValue);
}, 0);
});
如果您doWork
做了很多的計算,將不可避免地凍結UI。爲了避免UI凍結,您需要編寫代碼,以便在切片中完成計算,以便可以更新UI。 JavaScript調度程序將允許間隔之間的UI更新。例如,如果您正在處理數組,處理chunks中的項目。
是的,但這樣你唯一能做的就是延遲計算變量的計算。 UI在執行時仍然凍結。 – user949050
我感到你的痛苦。看到我更新的答案。 –