有没有办法使用CDN(用于jQuery)并拥有一个离线Web应用程序(通过HTML5清单)?

我开始关注HTML5s允许离线Web应用程序的能力。 前段时间我发现使用CDN对我的应用程序运行良好,所以我一直坚持使用它们,主要是为了jQuery。 但是,清单文件似乎不允许缓存跨域资源。 此时我一直在使用相关Dive Into HTML5教程中描述的catch-all清单。我的jQuery类似于HTML5 Boilerplate中定义的内容。 我希望能够继续从CDN为在线用户提供jQuery服务,但可能还有一个本地副本用于离线访问。 是否值得尝试追求这条路线,或者我应该切换到只是从我的网站提供jQuery,以满足所有请求? 谢谢。     
已邀请:
实际上,您可以编写包含jQuery CDN链接的清单。就像我的
app.manifest
CACHE MANIFEST
# 2012-01-20:v4

http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
这是HTML细分:
<html manifest="app.manifest">
<head>
    ....
</head>
<body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
    ....
</body>
</html>
它对我有用。     
检查在线jquery是否存在以及是否从本地加载的路径在这里得到了解答: 如何在CDN被阻止/不可用的情况下加载本地脚本文件作为后备? 哪里有讨论和几种不同的方法 我个人喜欢html5boilerplate方法:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script>
<script>!window.jQuery && document.write(unescape('%3Cscript src="js/libs/jquery-1.4.2.js"%3E%3C/script%3E'))</script>
您可以检查浏览器是否支持使用现代化程序进行离线缓存 http://www.modernizr.com/ modernizer 2.0版本支持条件加载,因此您可以使用它来使用以下脚本检测和加载所需的资源(取自diveintohtml5):
    if (Modernizr.applicationcache) {
  // window.applicationCache is available!
} else {
  // no native support for offline :(
  // maybe try Gears or another third-party solution
}
但正如我之前所说,我更喜欢html5boilerplate方法     
经过数周的思考,我终于在今晚开车回家的时候有了一个主意。 可以检查浏览器是否具有脱机支持。然后,您可以有一个区域,询问用户是否要为应用程序启用脱机支持。如果他们这样做,你加载你的本地jQuery副本。如果没有,或者离线支持不可用,那么您只需从CDN引用jQuery。 或者它可能是应用程序中的单独页面。如果他们访问它,它只是有一个脚本元素,可以提取您的本地jQuery文件。然后页面返回一个或窗口关闭,具体取决于应用程序。 (我假设添加你的本地jQuery副本在主页面上不起作用,除非你从现有页面中删除jQuery(覆盖变量或其他?)。) 根据浏览器决定保留脱机内容(文件)的方式,如果本地jQuery文件仅加载到一个页面上,则很可能会出现问题。当然,在用户离线之前,它会在每个页面上(可能)被调用。     

要回复问题请先登录注册