2011-12-01 56 views
4

我想知道从外部源和内部导入JavaScript文件之间,哪个解决方案最快,最适合我的网页。每种解决方案有哪些优缺点。 例如,哪一个是最好的:从哪里可以导入一个js文件?

< script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 

< script type="text/javascript" src="../jquery.js"></script> 

(同为json2.js)

我找不到对谷歌

感谢任何提示!

+0

CDN最大的缺点是它可能没有'fonctions.js'。 –

+0

对不起,我的意思是jquery.js,是一个错误! – remyremy

+0

有趣的是,有多少答案从他们的答案中省略了地理位置(只有一个答案谈论它,+1 @ eureka)。由于CDN上的数据遍布世界各地的数据中心,因此使用CDN可以极大地减少数据传输的物理距离。 – Jasper

回答

4

使用CDN(内容分发网络)的主要好处是,由于其用途广泛,机会是你的访问者可能已经拥有你想在他们的浏览器加载脚本的缓存副本。这将完全否定任何加载时间。如果他们没有缓存副本,那么CDN可能会以比您的服务器更快的速度将其传递给他们。我认为最好在可能的情况下使用CDN。

即使考虑到这一点,CDN也不是绝对可靠的,并且您不希望您的网站100%依赖别人的服务器。我建议在本地创建一个脚本副本,并尽可能将其用作备份。 jQuery的,这是很简单的:如果他们加载

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<script type="text/javascript"> 
    if (typeof jQuery == 'undefined') { 
     document.write(unescape("%3Cscript src='/Scripts/jquery-1.7.1.min.js' type='text/javascript'%3E%3C/script%3E")); 
    } 
</script> 

其他库可以在他们的方法进行测试有所不同,但思路是一样的。

同样值得注意的是,如果您是从Google的CDN加载ALWAYS,请使用完整版本号,否则脚本将不会被缓存。

也就是说,如果您的请求的URL看起来像这样:

"http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js" // highest 1.4 version (1.4.4) 
"http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" // latest version (1.7.1) 

Expires头设置先前为当前日期,因此缓存的效果无效。

More info on this here

+0

感谢所有这些好的答案:) – remyremy

3

最快的是definetely从自己的服务器,至少在大多数情况下(即纯下载速度)。 然而,有一个更大的机会,一个访问者在谷歌的版本的jQuery已经在自己的浏览器缓存使用相同的库访问其他网站,因此它可能让使用谷歌API的最常见的库更有意义,因为如果图书馆被缓存,相比于不得不从服务器上下载,速度会更快。

而且,这些日子里,你可以做到这一点,只要使用的第一号要求的版本:

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

而且automagicly获取最新版本;)

+2

为什么它从你自己的服务器“绝对更快”? –

+2

如果您的服务器位于冰岛并且您的用户位于澳大利亚,那么使用Google的CDN可能会更快,因为他们的数据中心遍布全球。我相信这是使用CDN的最强有力的论据。虽然如果你的服务器没有配置正确发送过期头并压缩它的输出,那么CDN将是一个好主意(压缩是巨大的)。 – Jasper

+0

我同意,CDN在大多数情况下都很棒,但Google的速度并不快,而且我的共享帐户将比Google今天发送的文件更快,而且我的专用服务器将比Google更快地发送文件。即使是他们的好日子之一。至少在我住的地方,Google的服务器似乎每天都在减速,可能是很多用户需要大量数据。这就是为什么我至少和我认识的大多数网站管理员一样,从Google下载速度较慢,可能与其他地方不同,但由于缓存的好处,我们都使用Google。 – adeneo

3

如果导入从http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js的JavaScript提高数据访问,谷歌CDN,这意味着更有效地提供内容给用户(取决于他们的位置)。

了解更多关于CDN:http://developer.yahoo.com/performance/rules.html

0

如果是喜欢googlePlusOne或其他稳定的网络服务(或外部广告)一些已知的资源,最好是使用外部链接。这样它将永远是最新的。
如果是js库(如jQuery或Ext),最好下载源代码。从本地存储库

0

加载库总是会更快这将表明当地始终是更好,但是......从外部来源加载库,例如jQuery的,可以让你的网站永远载入最最新版本的图书馆。

+3

为什么它从你自己的服务器“总是更快”? –

2

使用CDN具有一定的优势:

  • 如果用户已经访问使用相同的脚本从同一位置另一个网站,他们可能有它在浏览器缓存了。当他们不必重新下载页面时,页面加载速度会加快。
  • CDN提供商可能已经设置了服务器,以最大限度地提高脚本的服务效率,例如通过从服务器发送文件从物理上关闭用户。
  • 节省带宽。

缺点:

  • 您是依赖于服务供应商:如果他们的服务已关闭,您的网站中断。 (如果无法加载外部脚本,可以通过提供本地文件副本来实现。)
  • 您必须信任服务提供商提供的正确文件并且没有任何恶意。
相关问题