加载 jQuery 的最佳方式是啥? [复制]
Posted
技术标签:
【中文标题】加载 jQuery 的最佳方式是啥? [复制]【英文标题】:What's the best way to load jQuery? [duplicate]加载 jQuery 的最佳方式是什么? [复制] 【发布时间】:2012-09-02 04:46:03 【问题描述】:可能重复:Where do you include the jQuery library from? Google JSAPI? CDN?
我有一个使用 jQuery 的应用程序。该应用程序可以使用几乎任何最新版本的 jQuery,例如 1.7 或 1.8。
谁能给我一个建议,告诉我如何编码我的应用程序,以最大限度地提高它在用户缓存中找到满足我需求的最新版本的 jQuery 的机会。例如,我应该尝试从 google CDN 中查找一个版本,在哪种情况下我应该尝试查找哪个版本?
【问题讨论】:
不应标记为重复。 “副本”很拥挤,包含过时的信息。这是最新的 【参考方案1】:在公共网站上使用内容交付网络 (CDN) 非常普遍。要引用一个,您可以像任何其他本地文件一样将它们包含在脚本标记中:
jQuery 示例
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
谷歌示例
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
微软示例
<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.8.0.min.js" type="text/javascript"></script>
我应该始终参考最新版本吗?
这样做存在风险,例如使用 jQuery CDN 始终指向最新版本时。
在最近的几个版本中,一些方法已被弃用,即:toggle()
- 用于鼠标事件、live()
、die()
等。
据我从 jQuery 论坛了解,那些已弃用的方法将在 1.9 版中永久删除。
此外,jQuery 计划同时发布 1.9 和 2.0。然而 2.0 不是 1.9 的延续,而是将同时开发。
2.0 将不支持 IE6、IE7 或 IE8。 jQuery 1.9 将与所有以前的浏览器版本保持兼容。
阅读here。
出于这些原因,我不建议自动始终指向最新版本,而是明确引用您支持的特定版本。
如果 CDN 宕机了怎么办
这种情况很少发生但可能会发生 CDN 关闭的情况。以防万一,让您不必承担后果,您可以实施后备计划。
// Check if jQuery was initialized and if not (CDN was down for example), then
// load jQuery from a local source.
if(typeof jQuery === 'undefined')
document.write(unescape("%3Cscript src='yourlocalpath/jquery.1.x.min.js' type='text/javascript'%3E%3C/script%3E"));
CDN 可用性和性能评估
关于可用 CDN 的质量和性能,我在Royal.pingdom.com 上遇到了这个非常有趣的article。
Pingdom 的报告显示,jQuery 最常用的免费主机;谷歌、微软和Media Temple;已被证明是可靠的,但性能不一致。
为了评估网络,Pingdom 在欧洲和北美的多个地点进行了测试,每分钟一次,全天候 30 天。
结果发现这三个都提供了出色的可用性,但性能却并非如此。
对于不使用 HTTPS 或安全服务器的网站,Media Temple 是迄今为止速度最快的网站,Google 在欧洲紧随其后,但在北美却落后。对于 HTTPS 网站,Google 是欧洲最快的,Google 和 Microsoft 在北美的表现相似。
微软在欧洲的表现最差,但总体上与谷歌在北美的表现不相上下。
【讨论】:
+1 很棒的解释! 是拼写错误还是故意让 Google 版本缺少type="text/javascript"
?【参考方案2】:
选择满足您需求的最新版本的 jQuery。此时,将是 1.8。然后在免费且广泛使用的 CDN(可能是 Google 或 Microsoft)上链接到它。
您应该链接到特定版本的 jQuery。虽然有最新版本的 jQuery 的链接,但您不应该链接到该链接,因为当它发生变化时,您的网站可能会在您不知情的情况下崩溃。您应该只链接到特定版本的 jQuery。这是在 Google CDN 上链接到 1.8.1 的代码。
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
如果你真的想优化你的浏览器缓存命中,你会选择并使用现在广泛部署的 jQuery 版本进行测试(我相信某处有关于每个版本的使用量的网络统计数据)然后你会定期更新以跟踪最常用的版本。我怀疑这是微优化,只选择您测试过的任何最新版本都是合适的,并且会给您带来使用通用 CDN 的好处。
【讨论】:
【参考方案3】:我建议从Google 或Microsoft CDN 引用静态版本号。立即使用最新版本进行开发。如果您进行需要更新功能的更改,只需更改布局中的参考即可。
Google CDN 如下所示:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
【讨论】:
【参考方案4】:最新版本可以直接从jQuery加载:
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
您还可以从中加载其他 Content Delivery Networks。
一些流行的 CDN 是:
jQuery (code.jquery.com) 微软 (ajax.microsoft.com) 谷歌 (ajax.googleapis.com)【讨论】:
我想使用 CDN,但最好选择哪一个,我应该如何对其进行编码以查找最有可能在缓存中的 jQuery? 当您在 Google、jQuery 或 Microsoft 之间做出选择时,这并不重要。它们都具有相似的可靠性和性能。 链接到jquery-latest.min.js
是很危险的,因为 jQuery 可能会在未来的版本中进行更改,这可能会破坏您的网站(这种情况一直都在发生),而您的网站会自动继承并被破坏。
以上是关于加载 jQuery 的最佳方式是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章