我应该让我的网页在我自己的服务器上或从code.jquery.com引用jquery.js的副本吗?

时间:2013-05-12 12:03:37

标签: javascript jquery html

我是javascript等新手,所以可能这是一个愚蠢的问题 我正在研究JQuery-UI教程,他们有:

<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>     
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />    
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>    
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>

如果我可以包含这样的js代码,为什么我需要下载jquery库?

3 个答案:

答案 0 :(得分:14)

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
if (!window.jQuery) {
    document.write('<script src="/path/to/your/jquery"><\/script>');
}
</script>

当您使用CDN时,用户不必再次下载jquery文件,因为他们很可能已将其缓存。

第二个脚本标记中的代码检查jquery是否可以从CDN获得,并返回到您计算机上的jquery的本地副本。

答案 1 :(得分:5)

如果您想在本地工作,最好拥有本地副本。

您所看到的内容称为CDN - 内容分发网络。这是有益的,因为它允许跨多个网站潜在地缓存资源,并且不计入浏览器强加的同一网络限制。

HTML5 Boilerplate有点不同:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.8.3.min.js"><\/script>')</script>

正如您所看到的,我们正在使用协议相对路径,因此如果您要在本地查看您的工作(不运行本地服务器),您的浏览器会在尝试查找{上的资源时挂起{1}}协议。拥有本地副本的另一个好理由。

答案 2 :(得分:5)

这取决于您的项目设置和要求。根据我的经验,我发现下载第三方js库的原因如下:

  • Intranet系统。如果应用程序是无法访问外部世界的Intranet系统,则必须使用本地副本

  • 受限制的托管环境。如果由于某种原因托管环境无法使用应用程序的资源访问某些地址,或者明确配置为不使用,则可以使用本地副本< / p>

  • 性能。如果与原始库网址的连接速度很慢,并且未在客户端上启用缓存(罕见或非常特殊的情况),则应用程序可能需要维护它自己的副本

另一种方法是建立内容交付网络(CDN),以便专门为您的应用程序提供资源。然后,CDN有责任使用最合适的方式获取资源。应用程序只需要访问CDN。这是许多系统的首选解决方案,因为内容管理与应用程序分离,并且因为CDN-s在大多数浏览器中表现更好。