有没有办法同时使用CDN(用于jQuery)和通过HTML5清单实现离线Web应用程序?

11 浏览
0 Comments

有没有办法同时使用CDN(用于jQuery)和通过HTML5清单实现离线Web应用程序?

我开始研究HTML5的能力,允许离线Web应用程序。

前段时间,我发现使用CDN对我的应用程序效果很好,所以我一直在使用它们,主要是为了jQuery。

然而,似乎清单文件不允许缓存跨域资源。

目前,我使用了通用的清单文件,按照相关的 Dive Into HTML5教程中所述。我的jQuery引入方式类似于 HTML5 Boilerplate中定义的方式。

我希望能够继续为在线用户从CDN提供jQuery,但是对于离线访问可能会有一个本地缓存副本。

是否值得尝试这种方法,还是应该完全从我的网站提供jQuery的请求?

谢谢。

0
0 Comments

有没有办法同时使用CDN(用于jQuery)和通过HTML5清单实现离线Web应用?

问题出现的原因:

这个问题的出现是因为有人希望能够在使用CDN(内容分发网络)来加载jQuery的同时,通过HTML5清单实现离线Web应用。CDN可以提供快速的网络加载,而HTML5清单可以使网页在离线情况下继续运行。

解决方法:

根据讨论中的内容,可以通过在HTML5清单中添加对jQuery CDN的链接来实现这个需求。具体做法是在清单文件(例如app.manifest)中添加以下内容:

CACHE MANIFEST
# 2012-01-20:v4
http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js

然后,在HTML文件的头部添加manifest属性,并指向清单文件:



    ....



    ....


这样做可以同时加载CDN上的jQuery,并在离线情况下通过清单文件缓存并使用jQuery。

其中还提到了一个小问题,即将`

你可以使用modernizer检查浏览器是否支持离线缓存。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的方法。

0
0 Comments

在回家的路上,经过几周的思考,我终于想到了一个主意。

我们可以检查浏览器是否支持离线功能。然后,我们可以在应用程序中添加一个区域,询问用户是否想要启用应用程序的离线支持。如果用户选择启用离线支持,我们就加载本地的jQuery文件。如果用户选择不启用离线支持,或者浏览器不支持离线功能,我们就从CDN引用jQuery。

或者,我们可以在应用程序中添加一个独立页面。如果用户访问这个页面,它会简单地包含一个脚本元素,用于引入本地的jQuery文件。然后,页面要么返回上一页,要么关闭窗口,这取决于应用程序的设计。(我认为在主页面添加本地的jQuery文件可能不起作用,除非你移除现有页面中的jQuery文件(覆盖变量或其他方法?))

根据浏览器如何保存离线内容(文件),如果本地的jQuery文件只在一个页面上加载,并且非常少使用,可能会出现问题。当然,当用户处于离线状态时,它将在每个页面上被调用。

0