Я использую нокаут для рендеринга большого количества данных. (35000 записей) Я не могу использовать запрос lazyload, передавая сервер, у меня есть данные в браузере.Нокаут медленно связывает огромное количество данных
Если я использую observableArray
в моей модели ViewModel, браузер замораживается около 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, чтобы сделать foreach
bindi ng более хитро и применить рендеринг только к частичному списку ArrayItems и использовать прокрутку div для рендеринга div только «onDemand», когда пользователь прокручивает div.
попробуйте сделать ленивый образ в виде модели без доступа к серверу для данных прокрутки (на div). вы полностью против ленивой загрузки? .. –
http://stackoverflow.com/questions/9709374/knockout-js-incredibly-slow-under-semi-large-datasets Я полагаю, что это причина, по которой ReactJS находится прямо сейчас, с ее виртуальным домиком, который кажется, сияет в этих ситуациях. –