从哪里导入js文件更好?

时间:2011-12-01 18:48:00

标签: javascript jquery import

我想知道从外部源和内部导入javascript文件之间哪个解决方案对我的网页来说是最快和最好的。每种解决方案的优缺点。 例如,哪一个是最好的:

 < 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相同)

我在谷歌上找不到任何提示

谢谢!

7 个答案:

答案 0 :(得分: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加载,请始终使用完整版本号,否则脚本将不会被缓存。

也就是说,如果您的请求网址如下所示:

"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

答案 1 :(得分:3)

最快的是从你自己的服务器定义,至少在大多数情况下(纯粹的下载速度)。 但是,访问者使用同一个库访问其他网站的浏览器中已经缓存了谷歌版本的jQuery的可能性要大得多,因此对于最常见的库使用Google API可能更有意义。如果库是缓存的,那么与从服务器下载库相比,速度会快得多。

此外,现在您可以执行此操作,并仅使用第一个数字来请求版本:

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

并自动获取最新版本;)

答案 2 :(得分:3)

如果您从http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js导入javascript以改善数据访问权限,则Google拥有CDN,这意味着可以更有效地向用户提供内容(取决于他们的位置)。

了解有关CDN的更多信息:http://developer.yahoo.com/performance/rules.html

答案 3 :(得分:2)

http://developer.yahoo.com/performance/rules通过此链接会非常有帮助  对你而言。

答案 4 :(得分:2)

使用CDN有一些优势:

  • 如果用户已经访问过同一位置使用相同脚本的其他站点,则他们可能已将其置于浏览器缓存中。当页面加载不必重新下载时,页面加载速度会加快。
  • CDN提供商可能已设置服务器以最大化提供脚本的效率,例如通过从服务器发送文件物理关闭给用户。
  • 节省带宽。

缺点:

  • 您依赖服务提供商:如果他们的服务中断,您的网站会中断。 (如果无法加载外部脚本,则可以通过提供文件的本地副本来帮助实现。)
  • 您必须信任服务提供商以提供正确的文件,而不是任何恶意文件。

答案 5 :(得分:0)

如果是某些已知资源,例如googlePlusOne或其他稳定的网络服务(或外部广告),最好使用外部链接。这样它始终是最新的。
如果它是库js(如jQuery或Ext),最好下载源代码。

答案 6 :(得分:0)

从本地存储库加载库总是会更快,这表明本地总是更好,但是......从外部源加载库,例如jQuery,将允许您的站点始终加载最新版本的图书馆。