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