5

我是 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 库?

4

3 回答 3

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 的本地副本。

于 2013-05-12T12:06:34.683 回答
5

这取决于您的项目设置和要求。根据我的经验,我发现下载 3rd 方 js 库的原因如下,否则这些库是公开的:

  • 内联网系统。如果应用程序是一个无法访问外部世界的 Intranet 系统,那么本地副本是必须的

  • 受限制的托管环境。如果由于某种原因托管环境无法访问具有应用程序资源的某些地址,或者被明确配置为不访问,那么本地副本是可行的方法

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

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

于 2013-05-12T12:07:39.223 回答
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>

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

于 2013-05-12T12:05:27.073 回答