Устаревшие JSON получают данные из Chrome / Safari на моем сервере Apache / Django, но Firefox никогда не устареет? - PullRequest
1 голос
/ 25 июня 2010

У меня работает сервер Django 1.1 Apache2.Существует запрос на получение JSON по фиксированному URL, который возвращает «устаревшие» данные при доступе через iPad / iPhone / Safari / Chrome, но всегда актуален из Firefox.

Под устаревшими данными я понимаю, что какданные, которые представляет JSON, изменяются, неработающие запросы не обновляются, их ответы кэшируются на срок до 15 минут или около того.Firefox всегда запускает последние данные, но Safaria / Chrome (iPad / iPhone) занимает до 15 минут, чтобы получить новые данные из этого запроса JSON (они возвращают кэшированную версию.)

Я могу проверить, что Apacheпомещает в access.log запись для каждого отдельного запроса независимо от того, какой браузер, но код Django / Python для представления вызывается только для запросов Firefox каждый раз.Если запрос поступает от Safari / Chrome / iPad / iPhone, код Django вызывается только каждые 15 минут или около того, и данные кэшируются.

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

1 Ответ

0 голосов
/ 25 июня 2010

Проблема заключалась в промежуточном программном обеспечении кеша Django. Я включил его для кэширования локальной памяти по умолчанию для анонимных веб-страниц, которые раньше всегда были статическими страницами. Но этот JSON API (из-за использования iPad / iPhone) был анонимным, но имел нестатические данные, которые со временем менялись. Я не знаю, почему FF запускает обновления, а другие нет. Отключение кэширования на анонимных страницах решило проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...