0
當$scope.event
達到BufferLimit我從一個陣列,這將減少totalReceived
值比我外面的if語句推新元素刪除第一個元素,但是當我把新元素我沒有看到在陣列,作爲最後一個項目?我也用slice
是凍結了我的瀏覽器在bufferlimit與shift
是一樣slice
。由於數據量高,我正在尋找更好的解決方案?當添加新的元素到數組的末尾它使用拼接改變?
Ctrl.js如下
//BufferLimit is 8MB totalReceived value is coming from other method
$scope.event = [];
function safelyAdd(element) {
if (totalReceived > Bufferlimit && $scope.event.length) {
$scope.event = $scope.event.splice(1); //delete first element in $scope.event
totalReceived -= $scope.event[0].messageSize; //total message size minus deleted message size
console.log('totalReceivedBytes', totalReceived);
// $scope.event =[];//reset array if max size reached..
console.log('$scope.event', $scope.event)
}
console.log('$scope.event.length', $scope.event.length);
$scope.event.push(element); //then push new item..
}
所以只需創建新的數組對象'var temp = $ scope.event.splice(1);' – hussain
哦你說的只是拼接它 – hussain
但我看到'$ scope.event .length'不停地用新的消息越來越多,甚至我們'splice'第一要素,即實際的目的,以減少對瀏覽器 – hussain