2012-07-24 24 views
0

我正在開發一個應用程序,該應用程序利用PDFLib爲我的用戶提供動態PDF文件,用於總結他們的帳戶,並確保這些頁面不被緩存(一些敏感數據被傳遞,並且我無法將其存儲在緩存中安全原因)。如何驗證緩存是否被禁用(IE7)?

我曾嘗試使用下面的代碼嘗試:

Header("Expires:-1"); 
Header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
Header("Cache-Control: no-store, no-cache, must-revalidate"); 
Header("Cache-Control: post-check=0, pre-check=0", false); 
Header("Pragma:no-cache"); 

首先,我有IE7沒有緩存頁面的測試沒有萬無一失的辦法,所以我的第一個問題是「我怎麼測試,以確保我的無緩存頭文件正在工作?「

其次,在將這些行添加到我的代碼後,PDF停止在IE7中顯示。當我刪除線,它工作正常。任何人有任何想法如何避免這種行爲?

在此先感謝!

編輯:第一個問題已經回答;我應該分開問他們。我的第二個問題是:「如何避免IE7在發送no-cache頭文件時不呈現我的PDFLib頁面的行爲?」仍然活躍。

+1

你似乎設置了兩個'cache-control'頭文件。第一個覆蓋是否是第一個? – starbeamrainbowlabs 2012-07-24 14:39:07

+0

@starbeamrainbowlabs否,第二個緩存控制頭的第二個參數確保第一個緩存控制頭不會被覆蓋。 – Matt 2012-07-24 16:54:26

+0

我不知道!謝謝! :) – starbeamrainbowlabs 2012-07-24 17:39:02

回答

1

要檢查頁面是否被緩存,請更改並刷新。請注意,Expires標題應包含日期,因此-1的值無效。嘗試在過去使用日期。

+0

如果我沒有弄錯,「-1」評估爲無效日期,瀏覽器自動假定它是「過去的日期」,是正確的? – Matt 2012-07-24 14:01:37

+0

另外,是的,這是明顯的答案。我想知道是否有任何開發工具(特別是針對IE7),以便我不需要經過多次命令鏈來持續提交併將代碼推送到測試服務器,以便測試以查看如果我的頁面沒有被緩存。 – Matt 2012-07-24 14:03:24

+0

@Matt可能,儘管我一直在使用很遠的未來日期,但我認爲這可能會有錯誤。如果你想測試IE的具體行爲,你將不得不在IE中加載頁面。 – 2012-07-24 14:04:40

0

我實際上找到了調試欄http://www.debugbar.com/download.php對於IE 7來說,顯示了我所有的標題和緩存信息。我使用HTTP(S)選項卡,選擇我的文檔並在下面查看「信息&緩存」。一旦我掌握了它,真的很容易。