次のキャッシュの問題を解決するために何時間も努力しています。
私のアプリケーションの構造は次のとおりです(簡略化)。
index.php-メインページ(さまざまな入力フィールド、送信ボタン、およびTCPDFを使用してPDFコンテンツを支払うためのiframeが含まれています)
generate.php-指定されたPOSTパラメータに基づいてPDFファイルを生成し、ファイルをファイルシステムに保存します
Viewer.php -PDFドキュメント(TCPDFライブラリ)を表示します。iframeはこのスクリプトをロードしてPDFファイルを表示します
ワークフローは非常に単純です。ユーザーはいくつかのオプションを選択し、メインページの送信ボタンをクリックします。選択されたパラメーターは、AJAXごとにPOSTによってgenerate.phpスクリプトに送信されます。スクリプトはPDFファイルを生成し、それをファイルシステムに保存します。最後に、新しく作成/編集されたファイル名を返します。ファイル名はAJAXコールバック関数でフェッチされ、AJAXコールバック関数は新しい/編集されたファイル名でiframeを更新します。
viewer.php?filename=NEW_OR_EDITED_FILENAME
すべてが機能していますが、ファイルが置き換えられると、新しいバージョンがハードドライブにあるにもかかわらず、ブラウザに古いpdfファイルが表示されることがあります(常にではありません)。私は次の解決策を試しました:
- index.phpおよびviewer.phpによって生成されたHTMLへのキャッシュを無効にするメタタグを追加します
- 次の方法でjQueryAJAX呼び出しのキャッシュを無効にします。
jQuery.ajaxSetup({cache: false});
filenameパラメータにランダムな文字列を追加します。
Viewer.php?filename = FILENAME_RANDOMSTRING
次に、RANDOMSTRINGがスクリプトから削除され、ファイル名が抽出されます。これらの解決策はどれも私にはうまくいきませんでした。テストされたブラウザは、 Chrome25.0.1364.152およびFirefox19.0です。誰かがこれを手伝ってくれますか?前もって感謝します