我试图在一个html页面中应用html5脱机应用程序。谷歌、Jquery或其他服务提供商是否有单行链接API(就像我们使用Google链接那样)可以轻松启用离线缓存?我是html5和Javascript的新手,请帮助我。
非常感谢。
发布于 2011-02-22 15:29:46
它并不像一个链接包含的那样简单。至少,您需要一个清单文件。这个文件告诉应用程序应该缓存哪些文件。您可以在该这里上阅读更多内容。下面是清单文件内容的示例:
声明内容
CACHE MANIFEST
/clock.css
/clock.js
/clock-face.jpg
您还可以阅读这个关于清单/离线应用程序( 这里 )的很好的教程。
一旦您有了一个清单文件,您可以使用下面的代码来测试您的清单,以及哪些是缓存,哪些不是缓存,缓存等等。
调试代码:
var cacheStatusValues = [];
cacheStatusValues[0] = 'uncached';
cacheStatusValues[1] = 'idle';
cacheStatusValues[2] = 'checking';
cacheStatusValues[3] = 'downloading';
cacheStatusValues[4] = 'updateready';
cacheStatusValues[5] = 'obsolete';
// Listeners for all possible events
var cache = window.applicationCache;
cache.addEventListener('cached', logEvent, false);
cache.addEventListener('checking', logEvent, false);
cache.addEventListener('downloading', logEvent, false);
cache.addEventListener('error', logEvent, false);
cache.addEventListener('noupdate', logEvent, false);
cache.addEventListener('obsolete', logEvent, false);
cache.addEventListener('progress', logEvent, false);
cache.addEventListener('updateready', logEvent, false);
// Log every event to the console
function logEvent(e) {
var online, status, type, message;
online = (navigator.onLine) ? 'yes' : 'no';
status = cacheStatusValues[cache.status];
type = e.type;
message = 'online: ' + online;
message+= ', event: ' + type;
message+= ', status: ' + status;
if (type == 'error' && navigator.onLine) {
message+= ' (prolly a syntax error in manifest)';
}
console.log(message);
}
// Swap in newly downloaded files when update is ready
window.applicationCache.addEventListener(
'updateready',
function(){
window.applicationCache.swapCache();
console.log('swap cache has been called');
},
false
);
希望这能有所帮助。
发布于 2011-02-22 15:29:30
通常,通过创建一个清单文件来启用html5脱机功能,该文件描述浏览器应该缓存应用程序中的哪些资源。
阅读这篇文章
http://www.webreference.com/authoring/languages/html/HTML5-Application-Caching/
还有谷歌搜索“html5清单”。
我不知道一个页面应用程序会得到多少好处;您的应用程序需要能够脱机工作才能获得好处。例如,电子邮件RIA可能允许您脱机编写消息,并将其存储在本地存储区,直到您联机并发送消息。类似地,它可以在联机时加载和存储您的电子邮件,这样您就可以在脱机时查看您的邮件。
https://stackoverflow.com/questions/5080044
复制相似问题