我想花幾個小時解決以下緩存問題。通過TCPDF禁用顯示在iFrame PDF中的瀏覽器緩存
我的應用程序具有以下結構(簡化):
的index.php - 主頁(包含各種輸入字段,提交按鈕和dispaying PDF內容與TCPDF的幫助下一個iframe)
generate.php - 基於所提供的POST參數PDF文件與文件存儲到文件系統
viewer.php - 顯示PDF文檔(TCPDF庫)。 iframe加載此腳本以顯示pdf文件
工作流非常簡單 - 用戶選擇一些選項並單擊主頁上的提交按鈕。所選參數通過POST發送到每個AJAX的generate.php腳本。該腳本生成PDF文件並將其存儲到文件系統。最後它返回新創建/編輯的文件名。文件名是在AJAX回調函數,然後刷新新/編輯文件名的iframe牽強:
viewer.php?filename=NEW_OR_EDITED_FILENAME
一切工作,但是當文件被替換,有時(並不總是),瀏覽器顯示舊的pdf文件,雖然新版本在硬盤上。我嘗試了以下解決方案:
- 添加Meta標籤禁用緩存由的index.php和viewer.php
- 禁用緩存jQuery的AJAX生成的HTML調用由:
jQuery.ajaxSetup({cache: false});
在文件名參數中添加一些隨機字符串:
viewer.php?filename = FILENAME_RANDOMSTRING
然後從腳本中刪除RANDOMSTRING並提取文件名。 這些解決方案都不適合我。經測試的瀏覽器是:Chrome 25.0.1364.152和Firefox 19.0。有人可以幫我弄這個嗎? 在此先感謝
感謝您的回答羅伊!這看起來非常好!我從來沒有嘗試在** filename **參數之外添加隨機字符串,不知道爲什麼......也許這是它沒有工作的原因。將盡快嘗試您的解決方案,如果它能正常工作,請將其標記爲正確答案 – maddob 2013-05-06 09:37:55
不客氣! – Roy 2013-05-06 14:53:30