1
我有一個API,通過服務器發送事件(SSE)發送更新,每秒鐘爲我的項目。每秒提高性能刷新項目
基本上我有一個集合$scope.items
,其中包含很多信息,並且此列表中的每一秒都會更新一個項目。
我在做什麼是:
var source;
if (!!window.EventSource) {
source = new EventSource('/updates');
} else {
alertify.error('SSE not supported');
}
// Emit SSE for items
source.addEventListener('items', function (e) {
var data = JSON.parse(e.data);
$timeout(function() {
var item_index = _.findIndex($scope.items, function (item) {
return item.id === data.id;
});
var status = data.status;
if (item_index > -1) {
if (status === 'cancelled') {
$scope.items.splice(item_index, 1);
}
$scope.items[item_index] = data;
$scope.$apply();
} else {
$scope.items.push(data);
}
});
}, false);
,如果我做的是正確的,或者如果當我開始有很多,很多項目我可以改善這個代碼,因爲應用程序是相當慢的我想知道循環每一秒......
內我不太清楚......是'無功item_index = _.findIndex(... 「每次你打電話時都要查找這個物品? –
將項存儲到一個隊列中,並使用setInterval函數'每隔x秒將項目從隊列中移出(「),並且如果將dom對象和更新後的html存儲到數組中,則批量更新dom,則性能應該更好。 – r3wt
@ r3wt將很高興看到你想要建議的例子。 謝謝 –