GET リクエストを使用してサーバーから画像を取得しようとしています。画像は常に変化しているため、毎秒数回画像を取得したいと考えています (画像を表示し、最終的にはビデオを模倣することを目的としています)。ただし、GET 要求には問題があります。どんなに速く画像を取得しようとしても (1 秒ごと、100 ミリ秒ごとなど)、5 秒ごとに新しい画像しか返されません。どこかにキャッシュされた画像があるように動作し、キャッシュを 5 秒ごとに更新するだけで、それ以外の場合は古い重複画像を返します。
問題を切り分けるために、次のことを行いました。
- サーバー側の画像が実際に約 100 ミリ秒ごとに更新されていることを確認しました。これは、Web ページがほとんどの GET 要求に対して実際に古い画像を返していることを意味します。
- 開発者向けオプションとシークレット モードで Web ページを実行することの両方で、ブラウザのキャッシュをオフにしました。ちなみにクロムです。
- 構成ファイルで maxKeepAliveRequests = 1 (無効) を設定することにより、Tomcat サーバーでキープアライブをオフにしました。
それでも、実際には 5 秒ごとに新しい画像を取得しているだけです。
Example Request Headers:
Cache-Control: no-cache
Connection: keep-alive <-- Could this be the problem?
Pragma: no-cache
Example Response Headers:
Cache-Control: no-cache
Cache-Control: no-store
Connection: close
Pragma: no-cache
Server: Apache-Coyote/1.1
私のクエリ(画像がロードされるたびに時間遅延後に実行されます):
document.getElementById("videoDisplay").src = filename + "?random="+(new Date()).getTime();