Сохранить сложное состояние страницы с помощью jQuery cookie
У меня есть страница с пользовательским видом на дерево. Когда узел раскрывается, его дочерние узлы загружаются через вызовы jQuery Ajax.
Теперь я хотел бы сохранить текущее состояние древовидной структуры, чтобы при выходе и возврате пользователя на страницу ранее расширенное древовидное представление оставалось расширенным.
В подобных ситуациях я сохранял данные, такие как поисковые запросы, результаты или данные форм, в файле cookie, используя этот плагин jQuery: https://github.com/carhartl/jquery-cookie
Пока что я вижу два варианта:
- Сохраните идентификаторы расширенных узлов и перезагрузите дерево с нуля, но:
- потенциально много вызовов Ajax,
- трудно совершать звонки в правильном порядке (то есть не загружать детей до того, как там будет родитель),
- время ожидания для завершения звонков
- Сохраните весь элемент, содержащий древовидное представление, в файл cookie, но:
- может быть много данных
- могут возникнуть проблемы с присоединением правильных событий jQuery к элементам узла при вставке HTML-кода древовидной структуры в DOM при загрузке.
Заранее спасибо за любые идеи!
Крис
1 ответ
В прошлом я использовал подход cookie. Но данные были слишком большими для заголовка cookie, поэтому я отправлял состояние на сервер с помощью ajax и сохранял его там. Делая это, вы можете восстановить состояние при рендеринге дерева.