我正在使用敲除渲染大量的數據。 (35000條記錄) 我不能使用lazyload請求,通過服務器傳遞,我有瀏覽器中的數據。敲除緩慢綁定海量數據
如果我在我的ViewModel中使用observableArray
,瀏覽器在顯示綁定結果之前凍結約10秒鐘。
var vm = function() {
var ar = [];
for (var i=0; i<35000; i++){
ar.push(i);
}
this.SelectedElementsListData = ko.observableArray(ar);
}
ko.applyBindings(vm());
而與此HTML結合
<div data-bind="foreach:SelectedElementsListData" class="scrolling">
<div data-bind="text:$data"></div>
</div>
<div data-bind="event: { click: fill }">
CLICK HERE TO START
</div>
這是需要的結果的原型
https://jsfiddle.net/RobertoSerafin/4axdwkfo/
我的問題是:
我怎樣才能讓一個通用customBinding,使得bindidi foreach
bindi更狡猾,並將渲染僅應用於部分ArrayItems列表,並使用div滾動來渲染div「onDemand」,當用戶滾動div時。
嘗試在視圖模型中執行一種懶惰的方式,而無法到達滾動上的數據服務器(在div上)。你完全反對懶加載? .. – 2015-04-03 10:30:34
http://stackoverflow.com/questions/9709374/knockout-js-incredibly-slow-under-semi-large-datasets 我想這就是爲什麼ReactJS現在正在着火,它是虛擬的dom似乎在這些情況下發光。 – 2015-04-03 12:07:14