1

FirefoxとOperaのキャッシュでHTML5タグを使用する際に問題が発生しました。

私のページには、クリックされたときにサーバーに新しいビデオを生成するボタンがあり(常に同じ名前)、ビデオが生成されると、video .../videoのページに表示されます。

問題は、FirefoxとOperaが常にページにビデオの最初のバージョンを表示し、ビデオのURLを直接入力すると最後のバージョンを(正しく)表示することです。

「metahttp-equiv="Cache-control" content = "no-cache"」を使用してキャッシュを削除しようとしましたが、役に立ちません。

ChromeとSafariでは完全に機能します。

何か案が?

ありがとう

4

1 に答える 1

6

3つのオプション:

  1. ビデオファイルの適切なキャッシュ制御ヘッダーを送信します。これは、htaccessファイルまたはweb.configファイル(Apache / IIS)を介して行われます。本質的には良い解決策ですが、一部のブラウザでは失敗する可能性があります
  2. 次のようにタイムコードをパスに添付します。http://mydomain.com/mypath/myvideo.mp4?t=13591239123
  3. ビデオファイルには常に新しい名前を使用します。たとえば、生成されたビデオをカウントし、順番に番号を付けます。

オプション3と、古いビデオを削除するcronジョブを組み合わせるのがおそらく最善です。そうしないと、2人のユーザーが同時にページを見て、お互いのビデオを上書きしてしまいます。

オプション1/2は、シングルユーザー環境に適しています。

オプション2は<video id='myvideo'>、新しいビデオの生成が完了すると、要素のパスをリセットします。

document.getElementById('myvideo').setAttribute("http://mydomain.com/mypath/myvideo.mp4?t="+(+new Date());

このソリューションは1つのソースファイルのみを処理することに注意してください。これをすべてのブラウザで機能させるには、mp4ファイルとwebm(またはogv)ファイルが必要です->2つのビデオファイルでhttp://caniuse.com/webmhttp://caniuse.com/mpeg4を比較します

于 2012-05-23T08:06:55.353 に答える