Обработка подмножества объектов

Что такое хороший шаблон для обработки подмножества объектов.

Скажем, у меня есть список шкафчиков, внутри каждого шкафчика есть набор предметов. Пользовательский интерфейс чем-то похож на это — мы будем надеяться, что искусство ASCII пройдет.

Locker#1    |    Item #1 in Locker #2
Locker#2 ** |    Item #2 in Locker #2
Locker#3    |    Item #3 in Locker #2
            |    Item #4 in Locker #2
            |    Item #5 in Locker #2
            |    Item #6 in Locker #2
            |    Item #7 in Locker #2
            |    Item #8 in Locker #2
            |

Ячейка #2 выбрана (активна). Что я делал, так это устанавливал обратный вызов при активации шкафчика № 2, а затем выполнял ItemCollection.fetch({data: {lid: LOCKER_ID }}) для получения подмножества элементов, готовых для отображения. Что не очень похоже на позвоночник.

Какой подход лучше -

  • Загрузка подмножества моделей - если да, то есть ли хороший пример того, как это сделать?
  • Загрузить все, а затем выполнить фильтрацию Backbone в коллекции?
  • Может быть, пример разбиения на страницы, который может быть уместным?

person koblas    schedule 14.05.2012    source источник
comment
связанные: stackoverflow. ком/вопросы/10538918/   -  person fguillen    schedule 14.05.2012


Ответы (1)


Я думаю, все зависит от количества ваших данных.

Но я не вижу никаких проблем с получением коллекции элементов при каждом изменении фильтра. Я действительно чувствую, что это как Backbone :). И это решение работает для обоих случаев: много данных и мало данных.

В качестве шага оптимизации вы можете кэшировать коллекции и создавать новые при каждом изменении фильтра. Таким образом, вы можете повторно использовать уже выбранный фильтр, если пользователь вернётся к уже посещенному фильтру.

Но все же этот шаг оптимизации увеличивает расстояние между вашим пользователем и свежими данными. Пользователь должен перезагрузить все приложение, чтобы обновить свои кешированные коллекции. Или... добавьте больше кода для сброса коллекций каждые X секунд... это будет трудный путь.

Итак, на мой взгляд: повторная выборка коллекции каждый раз, когда пользователь меняет фильтр, звучит неплохо для меня.

person fguillen    schedule 14.05.2012
comment
На самом деле я создал структуру, которая поддерживает синхронизацию данных между браузерами, поэтому принудительная повторная загрузка для согласованности не требуется. - person koblas; 18.05.2012