我应该在我的Web服务器上放置Jquery文件,还是只在我的PHP文件中通过jquery.com引用它们,哪个更好?

问题描述:

当我使用jQuery或它的插件,我应该只是补充我应该在我的Web服务器上放置Jquery文件,还是只在我的PHP文件中通过jquery.com引用它们,哪个更好?

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> 
<script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/validate/jquery.validate.js"></script> 

或者我应该下载两个文件并上传既到我的网络上,让我的Web服务器可以在本地取这两个文件?哪个更好?为什么?

比这更好,让谷歌为你托管它们。见What is the AJAX Libraries API?。您可以异步加载它们或仅引用静态文件。

For example

http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js 

尽管谷歌已经提供了这个服务,所以它的精细使用它,我不知道jQuery有那么除非有人明确地说:“你可以从我的网站链接的东西”,你应该犯错谨慎而不是(可能)窃取他们的带宽。

+1

+1,Cletus是正确的。 Google的jquery文件托管在一个非常疯狂的CDN上,该CDN被路由到许多位置,以便尽快将文件发送给用户。 – mmcdole 2009-12-03 02:10:29

+0

只是要具体:我相信jQuery项目会更喜欢人们不从他们的服务器热链接脚本文件。如果每个人都这样做,那么他们的账单会很快达到天文数字。 – dgw 2010-07-19 22:07:43

在本地或外部托管jQuery文件(通常通过google)都有有效参数。

反对从外部服务器链接的主要观点是,您正在为您的网站添加另一个故障点,但是再次,谷歌并不经常停机。

由于谷歌使用CDN作为文件,并且可以并行下载外部文件,因此赞成的观点略为提升。 Here's a great article,这使得这种设置的情况。

如果您不确定,请尝试下载FireBug并查看您获得的性能提升的种类(如果有的话)。

考虑另一个想法(取决于您的网站的受众)是您的带宽成本。如果您必须将文件发送到大量的客户端,它可以加起来。其他人(如谷歌)承载这意味着他们正在处理这个问题,而不是你。

有点不同,如果你有很多松散的JS文件(jQuery插件?),那么你也可以考虑将它们全部缩小并合并到主机上的一个文件中,并使用远期过期时间和gzip编码。这节省了冗长的(外部)请求。在部署之前或在服务器启动过程中,可以轻松实现缩小和合并。

我知道这有点愚蠢,但是,如果你选择外部主机,只要确保你永远不需要在没有互联网连接的地方展示你的网站。

这是非常不寻常的,但有一次给我一个。我爸爸在没有互联网的演示室里向客户展示已经运行的网站的新版本。

另一种情况是内联网站点。如果互联网关闭,没有人能够连接到内部网,因为它有一个链接到谷歌.js或其他地方。

:d

从外部依赖性和失败的另一个点,每克里斯点,在不同的域引用文件

除了意味着更多的DNS查找。正如BalusC所提到的那样,合并文件(尽可能)和缩小也可以提高性能。良好的信息很多可以在http://developer.yahoo.com/performance/rules.html被发现有很多可用的非常有用的工具,以及其中的一些如下: