Задать вопрос

Кеш ajax-запросов в jquery — где здесь логика?

Среди многочисленных параметров метода jQuery.ajax есть параметр cache со следующим описанием:



> cache

> Default: true, false for dataType 'script' and 'jsonp'



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



Я рассуждаю так: тип «script» используется для асинхронной загрузки скриптов функцией getScript. Они меняются редко, их нужно кешировать как можно жестче. Остальные типы запросов — получение актуальных данных от приложения. Их кешировать не нужно.



Дак почему в jQuery все сделано наоборот?
  • Вопрос задан
  • 9765 просмотров
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 5
serega011
@serega011
Видимо люди считают, часто бывает так что запрос с одинаковыми параметрами по одному и тому же адресу возвращает одно и тоже, а значит можно кэшировать. Если Вас такое поведение не устраивает — отключайте кэширование.
Ответ написан
Комментировать
andruxin
@andruxin
Ну если вы получаете скрипт ajax-запросом, то подразумевается, что в нём будет присутствовать какаято динамика(в зависимости от окружения). Так же и с джсон.
Вообще не вижу тут камня предкновения. Не нужно, то отключите, нужно — включите. Другой вопрос, если бы кеширование было включено постоянно и приходилось каждый раз придумывать костыли что бы его отключить.
Ответ написан
akzhan
@akzhan
Это ритеорический вопрос. Просто держите в уме.
Ответ написан
taliban
@taliban
php программист
потому что _не_ скрипты и jsonp — статика, остальное динамика. Те же html странички кешируют на долго, а пхп (даже с одинаковыми параметрами гет) нет, ибо на то они и «динамические».
Ответ написан
Видимо имеется в виду, что скрипты и json генерируются сервером динамически (особенно это относится к json с, например, REST API), иначе их проще получить через html. А html/xml/png/jpg/… подразумеваются статическими — динамическая подгрузка статического контента в ответ на действия пользователя.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы