是否有方法针对每个设备缓存中的某些资源。
我在一个离线的html5音频播放器上工作。显然,我必须根据HTML5规范指定文件类型,如Mp3用于webkit和Vorbis用于firefox等。但是,对于iPhone等移动设备,例如,我只想获得在这种情况下播放Mp3所需的文件。我有没有办法告诉浏览器缓存特定的文件,或者他们必须添加所有的资源,不管是什么。这样就消除了用户缓存更多需要的文件和超出限制的负担(我知道在mobile safari中只能缓存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和webkit和mp3。
任何洞察都是伟大的!

最佳答案

使用呢

/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支持的正确文件。

关于html5 - 缓存 list 中的设备特定资源管理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9204931/

10-09 06:54
查看更多