Я использую knockout.js, чтобы сделать мой взгляд, я получаю данные с сервера и связывание, как это ..knockoutJS вызывающих ошибки остановки сценария с вложенным Еогеаспом
var viewModel = ko.mapping.fromJS(data);
ko.applyBindings(viewModel, $("#macro-wrapper")[0]);
Моего вид ... Я обрезается несколько битов из ..., но обязательными являются такими же ...
<div data-bind="foreach: Data">
<h3>
<a href="#" data-bind="text: Site.Name"></a>
</h3>
<div id="">
<div data-bind="foreach: Comments">
<div class="">
<div class="" data-bind="click: $root.showContent">
<a ></a>
</div>
<span>
<a data-bind="attr: { 'href': Url }, text: SomeText"></a>
</span>
<span class="">
<span class="" data-bind="text: ADate"></span>
</span>
</div>
</div>
</div>
в базе данных содержится массив объектов, и в каждом из этих объектов другой массив ... Там около 500 предметов, которые должны быть оказаны.
В то время как я тестировал, у меня не возникло никаких проблем, но при развертывании, будь то медленный компьютер, я не знаю, но они получают «Этот скрипт медленный - остановка?» сообщение. Если вы нажмете «Нет» пару раз, он отобразит.
Каковы методы работы с большими наборами данных в нокауте? В идеале я хотел бы, чтобы рендеринг выполнялся async и позволял пользователю продолжать свою работу, пока он занят работой ...
Свойства на самом деле не подлежат наблюдению - это одноразовый рендер ... ничего не будет меняться. Я использую API сопоставлений для удобства.
UPDATE: ОК, поэтому я внес изменения и не использовал отображение api больше - страница загружается, но все еще медленно ... любые идеи? var viewModel = data;
У меня есть некоторые клиенты, жалующиеся на то, что мой веб-сайт, основанный на нокауте, медленно работает на старших маках в сафари 4. Пока не понял. Какой браузер (ы) используют ваши пользователи? –
хром, IE9 и 8. Частная проблема с IE8 – SteveCl