2
可能重複:
Knockout.js incredibly slow under semi-large datasets淘汰賽映射性能問題
我在我的模型下面的事件,如果我只有記錄了一把,但如果我得到一對夫婦的正常工作十幾個記錄,IE瀏覽器公佈我的腳本運行速度太慢。
self.getTrades = function() {
$.ajax({
type: "GET",
cache: false,
url: "/_vti_bin/DBOrderService/DBOrderService.svc/GetTradesByDateSource?format=json&traddate=" + self.selectedDate() + "&source=" + self.selectedSource(),
success: function (data, textStatus, jqXHR) {
if (data.requeststatus.code === 1) {
var statusId = SP.UI.Status.addStatus(data.requeststatus.message);
SP.UI.Status.setStatusPriColor(statusId, 'red');
return;
}
debugger;
ko.mapping.fromJS({ trades: data.trades }, mappings, self); //too slow, events are firing as items are added
self.selectedTrade(null);
},
error: ajaxError
});
};
我認爲它是因爲映射射擊更改通知的每一行作爲其附加,所以我想「散裝」新行復制到我的模型。
我試圖
var temptrades = ko.mapping.fromJS(data.trades, mappings);
self.trades=temptrades();
和
self.trades(temtrades);
和
self.trades(temptrades();
但他們都只是breajk我的模型。 將ko.mapping創建的可觀察數組一次性複製到我的模型中的正確方法是什麼? ko.mapping中是否有選項可以防止觸發事件發生?
您應該檢查過去的問題以獲得可接受的答案。 –