кеширование запросов jquery - PullRequest
0 голосов
/ 16 ноября 2011

У меня есть приложение, которое отправляет несколько запросов на получение веб-службы и отображает карту, используя эти данные. Я использую это в нескольких местах. поскольку для загрузки карты требуется время, каков наилучший способ кэширования запроса get?

Я думаю о следующем подходе

если я просто использую Memcache для кеширования ответа, мое приложение все еще делает запрос get. для дальнейшей оптимизации я могу использовать кэширование jquery / javascript и установить заголовок кэширования Http.

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

спасибо

1 Ответ

1 голос
/ 16 ноября 2011

Лучший подход в вашей ситуации - установить HTTP-заголовки Cache и Expires со стороны сервера и заставить Jquery использовать кеш при выполнении запросов.Если применимо, я также рекомендую отправлять Дата изменения с сервера, поэтому после истечения срока кэширования JQuery сначала спрашивает, изменилось ли содержимое службы с даты последнего изменения.

Если вы успешно примените заголовки кэширования, код на стороне клиента будетне выдавать http-запрос, пока не истечет время кэширования.

Существует три основных подхода к кэшированию (AFAIK) для повышения производительности:

  • Кэширование базы данных.Кэширование запроса и результатов на уровне данных, так что когда служба выдает запрос, она не выполняется каждый раз.Если запрос к вашей базе данных занимает много времени, и разные клиенты выдают одинаковые запросы на обслуживание, подумайте об этом.
  • Кэширование памяти сервера.Если применяется, сервер не выполняет действие и возвращает содержимое из кэшированной памяти.Этот подход в основном проще от кэширования данных и более полезен.
  • Кэширование клиента через заголовки HTTP: это наиболее полезное и подходящее решение для вашей ситуации.Если клиент отправляет HTTP-запрос к одной и той же службе с одними и теми же параметрами в жизненном цикле, то нет необходимости снова и снова получать один и тот же ответ с сервера (например, статические страницы, изображения, файлы CSS и файлы JavaScript).Вы можете использовать заголовок Cache-Control и атрибут max-age для достижения этой цели.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...