0
我的問題的foreach大選擇地變慢knockoutjs數據綁定
我有一個加載同一選擇有數以百計的檢索每個數據項的選項表。我檢索數據的選擇和之前的數據綁定其存儲在一個JavaScript變量。問題是,因爲有這麼多的選擇,選項花費10秒來填充數據集有200多個項目。
我所做的決定,這是我已經刪除了選擇非常快的數據綁定的運行,所以我敢肯定,這是我的問題,發現問題
。
我的問題
我還能做些什麼來加速這一進程?
我實現
<table id="reportList">
<tbody data-bind='foreach: reportList'>
<tr>
<td>
<select class="itemSelect" data-bind="options: $root.selectItemIDOptions,
value:ItemID, optionsValue: 'ItemID',
optionsText: 'SupplierItemID',
optionsCaption: 'Select Item'" />
</td>
<td data-bind="text: Description"></td>
</tr>
我的視圖模型
function ReportViewModel(reportData) {
//GlobalItemList already has all of the select options at this point ready for databinding
self.selectItemIDOptions = GlobalItemList;
self.reportList = ko.observableArray();
var Shrinkage = reportData.ShrinkageList;
var rowArr = self.reportList();
for (var i = 0; i < Shrinkage.length; i++) {
rowArr.push(new ReportRow(Shrinkage[i].ItemID, Shrinkage[i].Description);
}
self.reportList.valueHasMutated();
}
Row類
function ReportRow(ItemID, Description) {
var self = this;
self.ItemID = ko.observable(ItemID);
self.Description = ko.observable(Description);
}
這裏類似的問題:http://stackoverflow.com/questions/9709374/knockout-js-incredibly-slow-under-semi-large-datasets – SkelDave 2014-11-04 21:48:05