ZK сгруппированный список производительности - PullRequest
0 голосов
/ 19 ноября 2010

В настоящее время я работаю над экраном ZK со списком, содержащим группы. Поскольку вы не можете (насколько я знаю) использовать DataBinder для установки модели с помощью GroupsModel, я создаю ее вручную и вызываю setModel. Для настройки Listgroups и Listitems мне нужно создать ListitemRenderer, что я и сделал.

Проблема в том, что всякий раз, когда вы открываете или закрываете группу на экране, она связывается с сервером, чтобы установить группу как открытую, и снова вызывает ListitemRenderer для каждой видимой строки. Это приводит к медленному интерфейсу для пользователя.

Можно ли заставить ZK кэшировать содержимое списков и групп списков на клиенте так, чтобы открывающиеся / закрывающиеся группы не общались с сервером и не отображали каждую строку снова? В этой системе содержимое строк не изменится до тех пор, пока пользователь не выполнит другой поиск или не перетянет элементы.

Edit: Я закончил тем, что сам собрал Listgroups и Listitems и добавил их с помощью appendChild. Нет необходимости в модели или рендерере, поэтому все сделано на клиенте, что означает, что он очень быстрый. Хотя было бы неплохо узнать, как это можно сделать с помощью модели / рендерера.

1 Ответ

1 голос
/ 19 ноября 2010

Я предлагаю вам использовать метод renderall () .

е, г myListbox.getItemRenderer (). renderAll ()

IMO, если ваша модель содержит много данных, это действие может быть медленнее, чем действие по умолчанию.

...