我已經Django的Apache中通過mod_wsgi的運行。我相信Django緩存服務器端的頁面,這導致一些功能無法正常工作。如何禁用的Django/mod_wsgi的頁面緩存
我有一個倒數計時器,通過獲取當前服務器時間,確定剩餘的倒計時時間,並將該數字輸出到HTML模板。一個javascript倒數計時器接管併爲用戶運行倒計時。
當用戶刷新頁面或使用倒數計時器導航到不同頁面時,會出現問題。計時器似乎偶爾會跳到不同的時間,通常會在每次刷新時反覆回到同一時間。
使用HTTPFox,頁面沒有從我的瀏覽器緩存中加載,所以它看起來像是Django或Apache正在緩存頁面。有什麼辦法可以禁用這個功能嗎?我不會有足夠的流量來擔心緩存腳本輸出。或者我完全錯誤地解釋爲什麼會發生這種情況?
[編輯]從下面的帖子看,Django中禁用了緩存,這意味着它必須發生在其他地方,也許在Apache?
[編輯]我對發生的事情有了更全面的描述:對於服務器發出的前7個請求,頁面由腳本呈現並返回,儘管這7個頁面中的每一個似乎都隨着它稍後顯示被緩存。在第8個請求中,服務器提供第一頁。在第9個請求中,它在一個循環中提供第二個頁面,等等。這個過程一直持續到我重新啓動apache,當這個過程重新開始時。
[編輯]我已經配置mod_wsgi一次只運行一個進程,這導致計時器在每種情況下都重置爲相同的值。有趣的是,我的頁面上還有另一個組件,它使用order('?')在每個請求上顯示隨機圖像,並且每次都會用不同的圖像進行刷新,這表明緩存正在Django而不是Apache中進行。
[編輯]考慮到之前的編輯,我回去查看了相關的views.py文件,發現倒計時開始變量在模塊中全局設置,在視圖函數之外。在視圖函數中移動該設置解決了問題。所以事實證明,畢竟這不是一個緩存問題。感謝大家在這方面的幫助。
http://www.djangobook.com/en/2.0/chapter15/ – cwallenpoole 2009-10-27 21:20:59