Функция загрузки jQuery игнорирует максимальный возраст Cache-Control - PullRequest
0 голосов
/ 12 апреля 2011

Я использую функцию загрузки jQuery для получения изображения (графика) с моего сервера. График получен из REST API, защищенного базовой аутентификацией. Изображение в текущей настройке возвращается с заголовком Cache-Control max-age = 0. Это соблюдается, если я вызываю ссылку на изображение прямо из браузера. Но при использовании функции загрузки jQuery она кэшируется.

Я не хочу каждый раз получать новое изображение, потому что оно требует серьезных вычислений на сервере, а также потому, что графики показывают данные в реальном времени, долгое время кэширования нежелательно. Я буду использовать max-age = 30 или 60 позже.

Я знаю, что у функции jQuery ajax есть опция кеширования. Но эта опция может быть установлена ​​только в true или false, и это не то, что я ищу.

1 Ответ

1 голос
/ 12 апреля 2011

Стандартный способ переопределить получение кэшированного результата - добавить случайную строку запроса к полученному URL-адресу, например:

$(this).attr('src', url + '?randomval=' + (new Date).getTime() );

Затем вы можете установить заголовки сервера, чтобы позволить клиенту кэшировать (например, Cache-Control: private - или что-либо, что подходит для вашего приложения), и решить в своем коде JavaScript, как часто вы хотите изменить «случайное» значение, добавленное к Ваш URL для принудительной перезагрузки ресурса.

...