Pull to refresh

Comments 7

Производительность такого knockout дерева оставляет желать лучшего. Попробуйте на досуге создать дерево в 10 элементов первого уровня каждый из которого имеет по 30 ветвей каждая из которых имеет по 5 листьев.
пальцем в небо? или меряли?
по-моему нормальная производительность — Fiddle
Ну как же не померять то, померял.
Ваш — 0,8-1,0с на хроме и к сожалению не работает в Fiddle на IE.
Мой, очень похожий код: jsfiddle.net/kuBXG/5/ от 0,8-1,0с секунды на хроме до 2,08-2,10с на IE10 (все мои клиенты на IE).

Вот казалось бы — 1500 объектов — это много и бывает нечасто, а секунда — это очень мало. Но у меня такое дерево — один из параметров виджета, а виджетов много, а терпения у пользователя мало, а ещё же данные самого виджета, не параметрами едиными… И вся эта радость на одном ядре потому что js. Ну и мерял я на коре какой-тотаммногомегагерц, а у соседа медленней, а значит у клиента на придушенном макафе компе ещё медленней. Может и специфика у меня такая, но я перешёл на серверный рендеринг сколь либо значимых списков.
PS: мерял так:

var startTime = new Date();
ko.applyBindings(vm);
vm.data(arr);
alert(((new Date() — startTime) / 1000)+«ms»);
Статья без претензии на супер производительность. В большинстве случаев не надо никому копаться в дереве на 1500 узлов. Но если очень хочется можно прикрутить постепенную загрузку данных. Не обязательно рендерить все сразу.
Кроме того стоит попробовать подход использованный тут для таблиц. Говорят быстрее стандартных шаблонов в 10 раз. Я не пробовал и не вдавался. Я просто стараюсь не выводить сразу много данных.
В IE не работает, потому что гитхаб отдает скрипты с несоответствующим MIME типом. IE их блокирует.
Вот это работает.

IE10 — 1604
Chrome — 890
FF — 1300

А вот так:

IE10 — 8
Chrome — 6
FF — 6

Но это нечестный прием :-).

Ничего не напутали с последним примером? На 30% медленней предидущего примера, проверял на сафари на маке и на IE10.
Sign up to leave a comment.

Articles

Change theme settings