1

私はJSファイルでキャッシュを使用するようにすべて設定しましたが、実際に機能しますが、これが問題です...

$.AJAX メソッドをトリガーし、DB からより多くの情報/データを取得できるようにする div タグに .click() イベントがあります。

情報が取得されると、コンソール (ネットワーク アクティビティ) に、すべての JS ファイルが再度要求され、キャッシュが使用されていないことがわかります...

手順:

1) メインページ (main.php) に入り、JQUERY.MIN.JS (api.google... から) がキャッシュから取得されます...

2) div をクリックして、moreinformation.php から詳細情報を取得します。

3) moreinformation.php は、dataTable プラグインを使用して HTML コードを返します ( http://www.datatables.net/ )

4) 表はメインページに表示されます...

コンソールでは、JQUERY.MIN.JS ファイルが ?_=TIMESTAMP で再度ロードされていることが完全にわかります。

Ex: http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js?_=1361806746980

morinformation.php には、jquery.min.js と dataTables.js への < scripts > があります...

あなたが私を助けてくれることを願っています!

ありがとう!!

4

2 に答える 2

0

上記に基づくと(どこにキャッシュしているのかは完全にはわかりません)、以下が問題の原因である可能性があります。

JqueryAjaxメソッドにはキャッシュパラメーターがあります。

cache(デフォルト:true、dataType'script'および'jsonp'の場合はfalse)タイプ:ブール値falseに設定すると、要求されたページがブラウザーによってキャッシュされないように強制されます。注:キャッシュをfalseに設定すると、HEADリクエストとGETリクエストでのみ正しく機能します。これは、GETパラメーターに「_={timestamp}」を追加することで機能します。このパラメーターは、他のタイプの要求には必要ありません。ただし、IE8で、GETによって既に要求されているURLに対してPOSTが行われる場合を除きます。

リクエストを送信するときは、これをfalseに設定してみてください。

http://api.jquery.com/jQuery.ajax/

これは、ビルドされたキャッシュでブラウザをオーバーライドして、AJAXの結果が古いキャッシュ値を返すのを防ぐために行われます。

于 2013-02-25T16:04:29.760 に答える
0

それがあなたが望んでいた解決策であるように見えるので、私のコメントを答えに変えます。

最善の解決策は、jQuery を含む HTML ページ全体ではなく、実際に必要なデータだけを返すようにサーバーを変更することです。回収も早くなります。

于 2013-02-25T16:37:02.267 に答える