Сохранить сложное состояние страницы с помощью jQuery cookie

У меня есть страница с пользовательским видом на дерево. Когда узел раскрывается, его дочерние узлы загружаются через вызовы jQuery Ajax.

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

В подобных ситуациях я сохранял данные, такие как поисковые запросы, результаты или данные форм, в файле cookie, используя этот плагин jQuery: https://github.com/carhartl/jquery-cookie

Пока что я вижу два варианта:

  1. Сохраните идентификаторы расширенных узлов и перезагрузите дерево с нуля, но:
    • потенциально много вызовов Ajax,
    • трудно совершать звонки в правильном порядке (то есть не загружать детей до того, как там будет родитель),
    • время ожидания для завершения звонков
  2. Сохраните весь элемент, содержащий древовидное представление, в файл cookie, но:
    • может быть много данных
    • могут возникнуть проблемы с присоединением правильных событий jQuery к элементам узла при вставке HTML-кода древовидной структуры в DOM при загрузке.

Заранее спасибо за любые идеи!

Крис

1 ответ

Решение

В прошлом я использовал подход cookie. Но данные были слишком большими для заголовка cookie, поэтому я отправлял состояние на сервер с помощью ajax и сохранял его там. Делая это, вы можете восстановить состояние при рендеринге дерева.

Другие вопросы по тегам