2008-11-19 7 views
0

Нам нужно использовать ресурсы клиентской стороны для списков, содержащих задачи.Веб-кэширование при получении списков документов

Клиент должен:

  • получать уведомления об обновлениях в списке
  • быть в состоянии изменить порядок/фильтрации списка (запрашивающей обновление с сервера с задачами, которые клиент не знает из/есть в кэше)

проблема возникает на начальной загрузки или большие обновления списка (изменение от «задач, возложенных на меня», чтобы «задачи относительно х»)

Самая быстрая задача - вернуть все задачи в список, а не отдельные (10+) запросы.

Но E-tags не поможет, когда я запрашиваю обновление задачи в списке, так как он не был загружен отдельно.

Есть ли способ заставить браузер кэшировать элементы в списке по отношению к их отдельным URL-адресам?

Или способ создания кеша javascript, который выдержит навигацию?

  • Если я уйду оттуда и перейду к задаче url, будут ли мои объекты js выживать? Я подозреваю, что нет.
  • Если я уйду в сторону, а затем отброшу назад, мои объекты javascript выживут? Я подозреваю, что да.
    • Если да, возможно ли иметь страницу загрузки списка задач, которая будет проверять историю и вернуться к существующему списку задач? Я думаю, что нет - безопасность.

Я думаю, я просто должен взять начальные хиты загрузки и индивидуально получить задания, так что последующие запросы быстро (и взять на себя нагрузку с сервера).

ответ

1

В HTML5 есть атрибут Window.sessionStorage, который может хранить контент по определенному сеансу в пределах вкладки/окна (другие окна будут иметь собственное хранилище, даже если они работают против того же сеанса).

В спецификации также есть локальные хранилища и базы данных.

1

HTML5 по-прежнему немного далек от реализации, но вы можете использовать Google Gears для ваших нужд локального хранилища.

Кроме того, я не знаю, сколько одновременных клиентов и задач, о которых мы говорим, насколько важны задачи и какое напряжение может потребоваться в базе данных, но я думаю, вы должны быть в состоянии работать без каких-либо кеширования, 10+ запросов не так уж и много. Если трафик не является узким местом, я бы поставил кеширование на сервер и оставил клиента «немым».