【问题标题】:jQuery Mobile CDN vs localjQuery Mobile CDN 与本地
【发布时间】:2012-03-12 16:51:11
【问题描述】:

我不确定我是使用 cdn 还是本地的。本地是否意味着需要在智能手机上安装jquery资源,以便可以离线应用?

【问题讨论】:

    标签: jquery web-applications jquery-mobile smartphone


    【解决方案1】:

    在这种情况下,本地意味着您自己托管文件(作为网站的一部分),而不是依赖 CDN,也不意味着它们需要安装在设备上。

    下载库后,在清除缓存之前,可以在没有数据连接的情况下使用应用程序。当然,这取决于你的实际应用程序,如果它需要数据连接来查询服务器上的东西是行不通的,但这与 JS 库的离线可用性无关。

    不管怎样,你首先需要一个数据连接。

    CDN 托管库的好处是它可能已经为另一个网站加载,因此当用户访问您的网站时,他们不需要再次下载它。

    但是,还有其他因素需要考虑,例如:

    • DNS 解析
    • 库碎片(不同版本)

    然而,对于 jQueryMobile,与使用 jQuery 相比,另一个网站使用它(和相同版本)的可能性更大,因此我建议使用 CDN 版本。

    【讨论】:

    • ok thx,因为性能原因,在本地做不是总是更好吗?
    • 我认为您仍然误解了 local 的含义,我已经更新了我的答案以进一步阐明这个问题。
    • 我不确定我是否得到它(可能是因为我的英语不好)是否有一般建议何时使用 CDN 以及何时使用本地?
    【解决方案2】:

    使用 CDN 的主要好处是用户可能已经在他们的设备上拥有该文件,他们可以从缓存中加载它。另一个好处是,CDN 通常会设置为在文件发送时正确压缩文件,从而大大减少文件传输时的大小(jQuery 1.7 Core 在压缩时从大约 90KB 变为 30KB)。 CDN 也可能有适当的过期标头,如果您在自己的服务器上托管文件,请确保将其设置为正确提供文件。

    如果您正在创建本机应用程序,那么您可能希望在本地托管任何 JS 文件,这样它就不需要网络连接来运行应用程序。

    如果您正在创建一个 Web 应用程序,那么您可以使用缓存清单来告诉浏览器当用户在没有网络连接的情况下返回您的站点时要缓存哪些文件。

    这是一个开始使用缓存清单的教程:http://www.html5rocks.com/en/tutorials/appcache/beginner/

    我没有仔细阅读,但 MDN 通常有一些很好的文档:https://developer.mozilla.org/en/Offline_resources_in_Firefox

    【讨论】:

    • +1 表示缓存清单,还指出如果本地不需要网络连接。