我想知道从外部源和内部导入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相同)
我在谷歌上找不到任何提示
谢谢!
答案 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标头在当前日期之前设置,因此缓存的效果无效。
答案 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有一些优势:
缺点:
答案 5 :(得分:0)
如果是某些已知资源,例如googlePlusOne或其他稳定的网络服务(或外部广告),最好使用外部链接。这样它始终是最新的。
如果它是库js(如jQuery或Ext),最好下载源代码。
答案 6 :(得分:0)
从本地存储库加载库总是会更快,这表明本地总是更好,但是......从外部源加载库,例如jQuery,将允许您的站点始终加载最新版本的图书馆。