2

デバイスごとにキャッシュ内の特定のリソースをターゲットにする方法はありますか?

オフラインのhtml5オーディオプレーヤーで作業しています。明らかに、HTML5 仕様に従って、webkit で使用する Mp3 や firefox で使用する Vorbis などのファイルタイプを指定する必要があります。ただし、たとえば iPhone などのモバイル デバイスで使用する場合、この場合は mp3 で再生するために必要なファイルのみを取得したいと考えています。ブラウザに特定のファイルをキャッシュするように指示する方法はありますか、それともすべてのリソースを追加する必要がありますか? したがって、ユーザーが必要なファイルをさらにキャッシュする必要があり、制限を超えなければならないという負担がなくなります (モバイル サファリでは 10MB しかキャッシュできないことを認識しています)。

これが私のマニフェストです。

CACHE MANIFEST

CACHE:

index.html
master.js
http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js
style.css
buttons.png
coldplay.jpg
/player/tunes/waterfall-audio.m4a
/player/tunes/waterfall-audio.oga

したがって、明らかにFirefoxでは、ogaをキャッシュし、mp3をWebkitするだけで済みます。どんな洞察も素晴らしいでしょう!

4

2 に答える 2

1

使用について

/player/tunes/getDeviceAudio.php/waterfall-audio.audio

それ以外の

/player/tunes/waterfall-audio.m4a

そして PHP コード (別の言語用に実装できます)

<?php
// replace the name
$filename = preg_replace('/.audio$/iu', '', $_SERVER['PATH_INFO']); // waterfall-audio
$ext = '';
switch ($_SERVER['HTTP_USER_AGENT']) {
    default:
    case 'a user agent string': $ext = '.oga'; break;
    case 'another user agent string': $ext = '.m4a'; break; 
}
$filepath = "/path/to/audio/" . $filename.$ext;

echo file_get_contents($filepath);

ブラウザは、キャッシュするファイルであると判断し、正確なデバイスに対してキャッシュします。また、各デバイスは、userAgent がサポートする正しいファイルをキャッシュします。

于 2012-05-04T13:00:00.190 に答える
0

または、マニフェストを動的に生成し、解決されたユーザー エージェントに従ってコンテンツを変更します。

于 2012-08-01T08:33:40.520 に答える