如果我没有实现任何updateready事件处理程序而不调用swapCache(),这是否意味着浏览器将始终使用应用程序的第一个(最旧的)下载版本?
如果不是,那么为什么swapCache()需要这种方法呢?
我有一个HTML5应用程序,它使用缓存清单来提供脱机功能.此应用程序在联机时进行ajax调用,其中一些调用可以获得403未经授权的响应.
这是我的cache.manifest文件的底部:
NETWORK:
*
FALLBACK:
/ /offline
Run Code Online (Sandbox Code Playgroud)
如果我删除了回退部分,所有接收403响应的ajax调用都按预期工作,我可以使用jQuery错误处理程序检测到这一点并将用户重定向到登录表单.
但是如果存在回退部分,则相同的调用获得200 OK响应,并将回退HTML的内容作为正文,即使服务器回复了403,因此我无法知道用户未经过身份验证,必须发送到登录页面.
我在这里错过了什么吗?提前致谢
我很多次遇到这个问题,其中一些用户有一个损坏的应用程序缓存(HTML 5).
每次有新版本时我都会更新清单文件,有时用户会收到损坏的应用程序缓存.
在这种情况下,我想要完全清除应用程序缓存中的内容,并从服务器加载所有新鲜内容.
有没有办法使用Javascript?
你如何使用和创建一个MANIFEST文件(结构),
处理appCache事件和错误,
什么时候需要swapCache?
javascript events application-cache cache-manifest html5-appcache
我正在阅读有关HTML5应用缓存清单的详细信息(特别是来自这篇优秀的文章).我很好奇这个想法是否有用:
我们在子域内的CDN上托管所有静态资源(脚本,CSS,字体,图像)(例如cdn.example.com和app在www.example.com上).是否可以在CDN上托管应用缓存清单?例如,
<!doctype html>
<html manifest="http://cdn.example.com/appcache.manifest">
...
<script src="http://cdn.example.com/foo.js"></script>
...
</html>
Run Code Online (Sandbox Code Playgroud)
如果是,清单列表是否可以来自CDN根目录?例如,在清单中:
CACHE MANIFEST
/foo.js
Run Code Online (Sandbox Code Playgroud)
有没有人有这方面的经验和/或知道任何警告?
编辑: WHATWG规范的工作草案它说" 脱机应用程序缓存清单可以使用绝对路径甚至绝对URL ",然后显示一个带有图像的CDN URL的示例.
我有一个现有的网站,可以在http和https(SSL)上正常工作.SSL证书有效,可以通过在浏览器中检查来确认.
我开始使用清单文件在我的网站上启用HTML5应用程序缓存.这对于使页面加载更快,最终用于脱机功能非常有用.这在使用常规http连接时非常有用.通过https(SSL)访问站点时会出现问题.当我这样做时,我可以很好地访问我的网站的内容,URL说"https"但是我看到以下行为:
Safari:它显示锁定图标,但是当我单击锁定图标以检查证书时,它表示证书无效.
Firefox:不显示指示加密的彩色地址栏,并且在检查证书时,它表示没有证书.
Chrome和Opera:正确显示URL的安全性,当单击锁定图标时,它会显示SSL证书信息.是!
我知道使用应用程序缓存会导致资源从浏览器本地提供,因此没有加密发生,但客户不一定知道后台发生了应用程序缓存,他们希望看到有效的SSL证书以及连接安全的指示.Safari和Firefox似乎错误地执行了此操作,除非我遗漏了某些内容.这是我的问题.有谁知道如何让Safari和Firefox显示从应用程序缓存提供的页面的SSL证书?你需要做些什么特别的事情,还是Safari和Firefox的bug?
有人最近指示我使用小部件的W3C规范:
开发人员可以通过浏览器的应用程序缓存使Web应用程序脱机工作.我曾经问过用户应该如何知道他们可以离线使用某些网站,也就是这个人提出了小部件规范.将应用程序的打包与其脱机存储能力分开是有意义的.然而,在谷歌搜索并阅读小部件之后,我找不到关于这个主题的最新文章(大多数文章似乎是从2010年左右开始).最终我发现了Opera的SDK,但开头有一条消息表明他们正在删除这些功能:
从Opera 12开始,Opera Widgets将为新用户关闭,并在以后的版本中完全删除.
来源:http://dev.opera.com/articles/view/creating-your-first-opera-widget/
W3C小工具是一种死技术吗?如果是这样,是否有任何跨浏览器技术正在开发用于Web应用程序的打包?我很好奇,因为我认为离线存储很有意思,但是看不到用户如何知道,即使他们没有互联网连接,他们也可以浏览到特定的网址并让它工作,除非浏览器告诉他们他们安装了哪些应用程序(或者除非每个支持离线存储的站点都向他们解释了这些应用程序
我正在尝试构建一个离线Web表单.它只使用jQuery和twitter bootstrap作为外部资源.我试图缓存它们,但是当我脱机刷新时,我得到net::ERR_FAILED了jQuery和bootstrap.我对AppCache很新,所以感谢任何帮助.这是我的清单,我在html中包含的内容:
CACHE MANIFEST
../style-bootstrap.css
http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js
NETWORK:
*
Run Code Online (Sandbox Code Playgroud)
HTML:
net::ERR_FAILED
我知道iOS WKWebView不支持脱机应用程序缓存.
这在Safari中启用,因此我在webkit项目中搜索了负责的代码并找到了这个
WKPreferences
- (void)_setOfflineApplicationCacheIsEnabled:(BOOL)offlineApplicationCacheIsEnabled;
Run Code Online (Sandbox Code Playgroud)
有人熟悉这种方法吗?是否可以通过访问此私有方法在iOS中启用应用程序缓存?(我不打算将应用程序发送到Appstore)
我的应用程序目前正在使用HTML5 appcache.
我想从update()事件中获取文件的哈希值.但是,我似乎无法找到如何访问我下载的资源.
我想做点什么
$.get( "/sunflowers.png", function( data ) {
hash(data)
});
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过chrome-internals查看缓存的资源,但我希望自动化这个过程
PS:镀铬开关的凹凸!请指教.
firefox google-chrome application-cache chromium html5-appcache