У меня Django работает в Apache через mod_wsgi. Я считаю, что Django кэширует мои страницы на стороне сервера, что приводит к неправильной работе некоторых функций.
У меня есть таймер обратного отсчета, который работает, получая текущее время сервера, определяя оставшееся время обратного отсчета и выводя это число в шаблон HTML. Таймер обратного отсчета JavaScript затем вступает во владение и запускает обратный отсчет для пользователя.
Проблема возникает, когда пользователь обновляет страницу или переходит на другую страницу с таймером обратного отсчета. Похоже, что таймер время от времени перепрыгивает на разные периоды времени, обычно возвращаясь к одному и тому же времени снова и снова при каждом обновлении.
Используя HTTPFox, страница не загружается из кеша моего браузера, поэтому похоже, что Django или Apache кэшируют страницу. Есть ли способ отключить эту функцию? У меня не будет достаточно трафика, чтобы беспокоиться о кэшировании выходных данных скрипта. Или я совершенно не прав, почему это происходит?
[Редактировать] Из постов ниже, похоже, что кэширование отключено в Django, что означает, что это должно происходить в другом месте, возможно, в Apache?
[Редактировать] У меня есть более подробное описание того, что происходит: для первых 7 (или около того) запросов к серверу страницы обрабатываются сценарием и возвращаются, хотя каждая из этих 7 страниц кажется кэшируется, как это показано позже. По восьмому запросу сервер обслуживает первую страницу. По 9-му запросу он обслуживает вторую страницу и так далее в цикле. Это продолжается до тех пор, пока я не перезапущу apache, когда процесс начнется снова.
[Edit] Я настроил mod_wsgi для запуска только одного процесса за раз, что приводит к сбросу таймера к одному и тому же значению в каждом случае. Интересно, что на моей странице есть еще один компонент, который отображает случайное изображение при каждом запросе, используя порядок ('?'), И каждый раз обновляется различными изображениями, что указывает на то, что кэширование происходит в Django, а не в Apache.
[Правка] В свете предыдущего редактирования я вернулся и просмотрел соответствующий файл views.py и обнаружил, что переменная начала обратного отсчета задается глобально в модуле, вне функций представления. Перемещение этого параметра в функции просмотра решило проблему. Так что, в конце концов, проблема с кэшированием не возникла. Спасибо всем за помощь в этом.