2010-06-24 67 views
1

我有一個Django 1.1 Apache2服務器正在運行。在通過iPad/iPhone/Safari/Chrome訪問時返回「陳舊」數據的固定URL有一個JSON獲取請求,但始終與Firefox保持一致。陳舊的JSON從我的Apache/Django服務器上的Chrome/Safari獲取數據,但Firefox永遠不會陳舊?

通過陳舊的數據,我的意思是說,作爲數據的JSON代表的變化,破碎的請求不會得到更新,他們的反應緩存達15分鐘左右。 Firefox總是觸發最新的數據,但Safaria/Chrome(iPad/iPhone)最多需要15分鐘才能從該JSON請求中獲取更新的數據(它們正在返回緩存版本)。

我可以驗證Apache是​​否正在在access.log中,無論使用哪種瀏覽器,每個請求都有一個條目,但視圖的Django/Python代碼每次只能被Firefox請求調用。如果請求來自Safari/Chrome/iPad/iPhone,那麼Django代碼每15分鐘左右只會被調用一次,並且數據正在被緩存。

我的目標是關閉任何瀏覽器正在進行的緩存操作,因此數據始終是最新的。

回答

0

問題是Django的緩存中間件。我開啓了默認本地內存緩存的匿名網頁,該網頁之前一直是靜態頁面。但是這個JSON API(由於iPad/iPhone的使用)是匿名的,但有非靜態數據隨時間變化。我不知道爲什麼FF在其他人沒有觸發的情況下觸發刷新。禁用匿名頁面的緩存解決了問題。