我通过 mod_wsgi 在 Apache 中运行 Django。我相信 Django 正在服务器端缓存我的页面,这导致某些功能无法正常工作。
我有一个倒计时计时器,它通过获取当前服务器时间、确定剩余倒计时时间并将该数字输出到 HTML 模板来工作。然后一个 javascript 倒计时计时器接管并为用户运行倒计时。
当用户刷新页面或使用倒数计时器导航到不同的页面时,就会出现问题。计时器似乎偶尔跳到不同的时间,通常在每次刷新时一遍又一遍地回到同一时间。
使用 HTTPFox,该页面没有从我的浏览器缓存中加载,因此看起来 Django 或 Apache 正在缓存该页面。有没有办法禁用这个功能?我不会有足够的流量来担心缓存脚本输出。或者我对为什么会发生这种情况完全错误?
[编辑] 从下面的帖子来看,似乎 Django 中禁用了缓存,这意味着它必须在其他地方发生,也许在 Apache 中?
[编辑]我对正在发生的事情有更全面的描述:对于向服务器发出的前 7 个(左右)请求,页面由脚本呈现并返回,尽管这 7 个页面中的每一个似乎都被缓存了稍后出现。在第 8 次请求时,服务器提供第一页。在第 9 次请求时,它会提供第二页,以此类推。这一直持续到我重新启动 apache 时,该过程重新开始。
[编辑] 我已将 mod_wsgi 配置为一次只运行一个进程,这会导致计时器在每种情况下都重置为相同的值。有趣的是,我的页面上有另一个组件在每个请求上显示一个随机图像,使用 order('?'),并且每次都会刷新不同的图像,这表明缓存是在 Django 而不是在 Apache 中发生的。
[编辑] 根据之前的编辑,我回去查看了相关的views.py文件,发现倒计时开始变量是在模块中全局设置的,在视图函数之外。在视图函数中移动该设置解决了这个问题。所以它毕竟不是缓存问题。感谢大家对此的帮助。