0

アセットのセットをあるブラウザで使用し、別のブラウザでは使用しない場合に、App Cache を使用して最適に処理する方法について誰か提案がありますか?

例: Firefox では OGG オーディオ、IE では MP3。両方のタイプのファイルをキャッシュできますが、オーディオは巨大で、ブラウザが使用できるファイルの 2 倍のファイルを格納します。

私の最善の考えは、いくつかの異なるマニフェストを作成することです。たとえば、すべてのブラウザに共通のアセットをロードしてから、MP3 などの別のマニフェストをロードし、IE を使用していることをクライアント側で判断できたら、このマニフェストを呼び出す iframe にページをロードします。ただし、Firefox を使用していることが判明した場合は、別のページ (OGG マニフェストが添付されている) を iframe に読み込むことができます。

これは機能しますか、それともよりエレガントなソリューションがありますか?

4

1 に答える 1

0

今のところ、このようなnginx書き換えルールを使用しています

location / {
    if ($http_user_agent ~ Firefox) {
        rewrite ^.*\/(app.manifest)$ $scheme://$http_host/moz.manifest redirect;
    }
}

ほとんどの Web サーバーでは、同様の書き換えルールを定義できます。これは高速であり、ソフトウェアをさらにインストールする必要がないため、適切なオプションです。

この男は、PHP を使用してどのブラウザーをチェックしているかを調べていますが、これは任意のフレームワークを使用して行うことができます。できれば、Nodeやプレーンな Ruby Rack のような高速なものを使用できます。

于 2011-12-25T18:09:07.997 に答える