0

HTML5 キャンバス タグを使用してクライアント側で行われるキャンバスに画像を描画するためにRAPを使用するとうまくいきます。

Eclipse を使用すると仮定すると、サーバー側で生成されるイメージは の下にあり<YOUR WORKSPACE>\.metadata\.plugins\org.eclipse.rap.tools.launch\<YOUR LAUNCH CONFIG>\.metadata\.plugins\org.eclipse.rap.ui\context\rwt-resources\generatedます。

ただし、これらのイメージはすべて、クライアント側のディスクにもキャッシュされます。これらは、格納されている 16 進ダンプを使用して簡単に回復できます。ただし、セキュリティ上の制約により、これらはそれぞれキャッシュしてはならず、メモリにキャッシュするだけです。

だから私:

  • 私はこのファイルが欲しくないのでナンセンスだったindex.htmlを編集しましたが、転送された画像はキャッシュされません
  • GETヘッダーを編集しようとしましたが、GETがすでに正しく変更されていることがわかりました
  • POSTヘッダーを編集しようとしましたが、ここではそうではない、特に定義されていない限り、定義によりPOSTは何もキャッシュしないことがわかりました
    • 参照。RFC:2616 セクション:9.5 トピック:POST
  • 問題がキャンバスタグ自体に関連しているかどうかを確認しました(このSO スレッドのtoBlobで想定されているように)
  • これが HTML5 のアプリケーション キャッシュに関連しているかどうかを確認しました

しかし、RAP クライアントには何も見つかりませんでしたし、問題に関連する特定のオブジェクトの HTML5 ドキュメントにも何も見つかりませんでした。私の質問は、RAP に関して HTML5 キャンバス オブジェクトを使用して画像をキャッシュする動作を変更する方法について何か考えがあるかどうかです。

アップデート#1

はいralfstxは、GC.drawImage(Image)キャンバスに画像を描画するために使用されます。次のスクリーンショットをご覧ください。これは、画像を描画してブラウザのキャッシュにアクセスしたときに表示されるものです。サーバーをシャットダウンすることで、画像へのサーバーアドレスにアクセスできないようにするだけです。

キャッシュされた画像の例

このセッションで実際に描画された画像を確認したい場合は、このペーストビン スニペットからすべての内容をコピーし (CTRL+A & RAW 貼り付けデータ内のカーソル)、ここに貼り付けます。

アップデート#2

対応強化要請の進捗状況

4

1 に答える 1

0

画像はクライアントではなくサーバー側にキャッシュされます。

GC.drawImage(Image)メソッドを使用してキャンバスに画像を描画すると仮定します。SWT を作成するたびImageに、 のサーバー上にファイルが作成されますcontext/rwt-resources/generated/。同じイメージが別の場所から使用される可能性があるため、このファイルはクリーンアップされません ( Bug 334367: Image#dispose() がそのリソースを ResourceManager から登録解除しないを参照)。

アップデート

申し訳ありませんが、ブラウザのキャッシュについて話していたのを見逃していました。もちろん、ブラウザも画像をキャッシュします。イメージは静的リソースとして登録され、サーブレット コンテナーによって配信され、キャッシュ ヘッダーを制御できないため、現時点ではこれを防ぐことはできません。

回避策として、サービス ハンドラを使用して機密画像を配信し、マークアップ サポートを使用して埋め込むことを検討してください。これらの外部リソースを SWT イメージでラップする計画があります。興味がある場合は、拡張リクエストを提出してください。

于 2014-02-20T09:13:47.190 に答える