尝试使用缓存清单——在 Chrome 和 Safari 中似乎一切正常,但在移动版 Safari 中却不行。
我已确保遵守 HTML5 离线应用程序的标准:
将 <html manifest="cache.manifest"> 添加到已加载的单站点页面
确保清单的 MIME 类型正确(在 .htaccess 中设置):AddType text/cache-manifest .manifest
有一个语法正确的清单(通过http://manifest-validator.com/验证)。所有资产都使用相对路径引用(因此协议没有变化)。
我在 Chrome 和 Safari 中没有收到任何 Javascript 错误,并且正在使用这个方便的 snipit 将相关事件记录到控制台:
function logEvent(event) {
console.log(event.type);
}
window.applicationCache.addEventListener('checking',logEvent,false);
window.applicationCache.addEventListener('noupdate',logEvent,false);
window.applicationCache.addEventListener('downloading',logEvent,false);
window.applicationCache.addEventListener('cached',logEvent,false);
window.applicationCache.addEventListener('updateready',logEvent,false);
window.applicationCache.addEventListener('obsolete',logEvent,false);
window.applicationCache.addEventListener('error',logEvent,false);
但是,在移动 Safari 中,我收到了“无法获取应用程序缓存清单”错误记录,以及没有其他解释的“检查”和“错误”日志事件。有任何想法吗?