我是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库?
答案 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在大多数浏览器中表现更好。