0

ブラウザのキャッシュをクリアするためのレーキタスクなどを作成したいと思います。問題は、Flashアプリを実行していることです。データを変更した場合、ブラウザのキャッシュをリセットして古いswfを削除し、新しいxmlデータを表示できるようにする必要がほとんどあります。

ルビーでブラウザのキャッシュをリセットするにはどうすればよいですか?または、さらに正確に言うと、ブラウザのキャッシュから選択したアイテムのみを削除するにはどうすればよいですか?

助けてくれてありがとう!

4

4 に答える 4

2

私はいくつかの可能な解決策を見ます:

  1. キャッシュからディスクから一時ファイルを削除するシェルスクリプトを作成します(どのブラウザを使用していますか?)。ブラウザにファイルがメモリにキャッシュされている場合、ディスク上のファイルの削除が必ずしも機能するかどうかはわかりません。
  2. ブラウザでのキャッシュを回避するためにHTTPヘッダー(キャッシュなし)を使用します。アドビにはキャッシュなしに関するドキュメントがあります。このヘッダーは開発モードでのみ設定できるため、本番環境ではswfがキャッシュされます。
  3. ブラウザに応じて、ページとキャッシュを強制的に更新します(FirefoxのCrtl-F5など)
于 2009-11-11T00:38:41.020 に答える
1

xmlデータをどのようにロードするかはわかりませんが、過去に、xmlファイルのパスに乱数を追加することで問題を回避しました。

xml.load("data.xml?"+Math.random());

基本的に、Flashは常にファイルが別のURLであると見なします。キャッシュ内で一致するものを見つけることができなくなります。

繰り返しになりますが、XMLデータをどのようにロードしているかわからないため、これがあなたの状況に当てはまるかどうかはわかりません。

しかし、それがお役に立てば幸いです。

于 2009-11-11T02:00:45.660 に答える
0

サーバーやクライアントだけでなく、サーバーからクライアントへの応答の途中で応答が通過する任意の数のノードでもキャッシュが発生する可能性があるため、場合によっては十分ではない場合でも、ブラウザのキャッシュをリセットすることはできません。 。

自由に使える唯一のツールは、キャッシュヘッダーです。

それらをNoCacheに設定できますが、毎回サーバーにヒットすることを覚えておいてください。

于 2009-11-11T01:03:37.707 に答える
0

Safariを使用しているので、AppleScriptを使用してキャッシュをクリアする方法を説明する記事があります。ただし、AppleScriptの部分をスキップして、rakeタスクでファイルを直接削除することもできます。唯一の落とし穴は、ブラウザを再起動して有効にする必要があることかもしれませんが、それはプロセスを強制終了して「/Applications/Safari.appを開く」ことで実行できます( Mac; Windowsでは、start "c:\ program files \ Safari ..."のようになります)。

于 2009-11-11T05:36:03.510 に答える