它其实无论哪个CDN您使用链接到您的jQuery的文件或与此有关的任何JavaScript文件。 是一个潜在的比其他的快? 还有什么其他因素可能发挥其CDN您决定使用一个角色? 我知道,微软,雅虎和谷歌都有CDN的现在。
Answer 1:
基于评论更新:
短版:没关系了,但它可能取决于他们的主机什么的。 他们所有的主机不同的事情:谷歌不举办jQuery.Validate,微软并未举办的jQuery UI的,因为2016年时做的!,微软提供了他们的剧本,否则将通过提供服务ScriptResource.axd
和更易于集成(如的ScriptManager与ASP.Net 4.0 )。
重要提示:如果您正在构建一个Intranet应用程序,留在CDN方式了。 不要紧,谁的收留了它,除非你是一个非常重载的服务器上内部,没有CDN会给你不是本地100MB / 1GB以太网将更多的性能。 如果使用CDN为你伤害了性能严格的内部应用程序。 正确设置你的缓存过期头 ,而忽略的CDN中唯一的内部网的情况下存在。
任被阻塞的机率似乎相当,几乎为零。 我有合同,即这是不正确的工作,但它似乎是一个例外。 此外,由于这个答案的原始张贴,周围的环境已经发生了很大变化,微软CDN已经取得了很大的进步。
我目前在该项目同时使用的CDN哪些最适合我们的解决方案。 有几个因素玩成这样。 与旧的浏览器的用户仍然可能使每个域2个同时请求所推荐的HTTP规范 。 这不是任何运行新的体面,任何一个问题, 支持流水线 (每目前的浏览器),但基于我们淘汰了此限制,很好,至少尽可能的JavaScript的另一个因素。
谷歌的CDN我们使用:
- jquery.min.js
- jQuery的ui.min.js 。
微软的CDN我们使用:
- MicrosoftAjax.js
- MicrosoftAjaxWebForms.js (直到4.0我们不能完全消除所有的UpdatePanel)
- jQuery.Validate.min.js
我们的服务器:
- Combined.js?V = 2.2.0.6190(Major.Minor.Iteration.Changeset)
由于我们的生成过程的一部分被组合和涅槃所有自定义JavaScript,我们经由包括释放或调试自定义脚本经理做到这一点(非精缩),取决于生成这些脚本的版本。 由于谷歌不举办jQuery验证包,这可能是一个不利的方面。 MVC是包括/在其2.0版本使用这个,所以你可以在微软的CDN完全依靠您的所有需求, 并通过使用ScriptManager这一切自动 。
要进行将DNS倍唯一的另一种说法,是有成本的,以该在页面加载速度方面。 在平均:很简单,因为它的使用更(它已经很长时间了) ajax.googleapis.com
很可能是由DNS不是越早返回ajax.microsoft.com
,仅仅是因为本地DNS服务器更容易获得的请求,它(这是在面积损失的第一用户)。 这是一个很小的事情,如果性能是非常重要的,精确到毫秒时,才可考虑。
(是:我知道我的同时使用CDN的这一点上是相反的,但在我们的情况下,DNS时间由等待时间上的JavaScript /阻塞发生远盖过)
最后,如果你还没有看它,最好的工具,有一个Firebug的 ,有些插件是: 页面速度和YSlow的 。 如果使用CDN但由于没有缓存头的每一次您的网页请求的图像,你错过了唾手可得的。 Firebug的网络面板可以快速给你的你的页面加载时间迅速击穿,和网页速度/ YSlow的可以提供一些很好的建议,以帮助。
Answer 2:
你绝对应该使用谷歌CDN的jQuery(这是由微软为中心的开发商推出)。
这是简单的统计。 那些谁也考虑使用MS CDN的jQuery将永远是少数。 有太多的非MS开发者使用jQuery谁将会使用谷歌的,也不会考虑使用微软的。 由于大胜利与公共CDN的一个提高缓存 ,多的CDN之间分裂的使用降低了该收益的潜力。
Answer 3:
谷歌会向您发送自己的软件精缩jQuery的版本,这个版本是6KB比MS服务标准精缩版打火机。 去谷歌。
Answer 4:
要考虑的一个次要的事情是,两家公司都提供略微不同的“额外”库:
- 微软将提供他们的CDN的jQuery验证库 ,而谷歌是不是( http://www.asp.net/ajaxlibrary/cdn.ashx )
- 谷歌将提供自己的CDN JQuery的UI库 ,而微软是不是( http://code.google.com/apis/ajaxlibs/documentation/ )
根据您的需求,这可能是相关的。
Answer 5:
还应当指出的是,作为ajax.microsoft.com是microsoft.com请求的子域发送的所有microsoft.com饼干加入需要得到回文件的总时间。
此外,ajax.microsoft.com使用的是默认IIS7压缩,劣于其他Web服务器使用标准的压缩。
http://ajax.microsoft.com/ajax/jquery/jquery-1.4.4.min.js - 33.4K
http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js - 26.5K
此外,如其他人所说的谷歌CDN的方式更受欢迎,大大增加了被缓存文件的机会。
因此,我强烈建议使用谷歌。
Answer 6:
它可能并不重要,但你可以与一些A / B测试验证这一点。 发送一半的流量到一个CDN,一半给对方,并设置一些分析来测量响应。 我认为它更重要的是能够在一个情况下轻松切换或其他有一些严重的问题不可用。
Answer 7:
我知道我插嘴有点晚了这里,但这里是我一直在生产中使用的代码。 我从来没有问题吧,但您的里程可能会有所不同。 请确保您在自己的环境中进行测试。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
!window.jQuery && document.write('<script src="/scripts/jquery-1.4.2.min.js"><\/script>')
</script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/jquery-ui.min.js" type="text/javascript"></script>
<script type="text/javascript">
!window.jQuery.ui && document.write('<script src="/scripts/jquery-ui-1.8.2.min.js"><\/script>')
</script>
Answer 8:
这是关于统计: jquery.com从谷歌jQuery的加载。 所以做的Twitter,#1和许多其他许多人。 因此,有相当高的可能性,你的网站的用户已经拥有了它缓存= 没有下载的 。
忘记验证,带宽和速度,因为这是最大的好处。 否则,任何其他CDN选项将在同一水平实质上执行。
Answer 9:
是一个潜在的比其他的快?
我其实好奇这一点我自己,所以我安装使用每个以下命令,然后运行它通过webpagetest.org的视觉比较工具jsbin测试页。 我测试:
- ajax.googleapis.com
- code.jquery.com
- ajax.aspnetcdn.com
- cdnjs.cloudflare.com
谁是最快的:code.jquery.com以0.1秒为在两个测试中
谁是最慢:ajax.aspnetcdn.com通过在第一测试0.7秒和ajax.googleapis.com通过在第二测试1秒
这里的第一个测试 (每次测试3次):
视频: http://www.webpagetest.org/video/view.php?id=121019_16c5e25eff2937f63cc1714ed1eac814794e62b3
报告: http://www.webpagetest.org/video/compare.php?tests=121019_D2_KF0,121019_9Q_KF1,121019_WW_KF2,121019_9K_KF3
这里的第二个测试 (另外3个):
视频: http://www.webpagetest.org/video/view.php?id=121019_a7b351f706cad2c25664fee7ef349371f17c4e74
报告: http://www.webpagetest.org/video/compare.php?tests=121019_MP_KJN,121019_S6_KJP,121019_V9_KJQ,121019_VY_KJR
Answer 10:
如前所述通过Pingdom的 :
当有人访问你的网站,如果他们已经访问了使用在相同的CDN相同的jQuery文件的另一个网站,该文件将被缓存,并不需要在所有被下载。 它不能得到任何比这更快。
这意味着,最广泛使用的CDN将有其副作用的可能性,它可以还清为您的网站。
数只表现观察:谷歌的CDN是一贯最慢的三个都在北美和欧洲。 在欧洲,微软的CDN是最快的。
Answer 11:
我认为这取决于哪里是你的目标受众。 您可以使用alertra.com到来自世界各地的许多地方,检查这两个CDN速度。
Answer 12:
一个额外的考虑-如果你的网站是SSL,你需要支持Android 2.1(或更早),对微软CDN的HTTPS版本的SSL证书会崩溃的Android浏览器的这些版本,每此问题: HTTP://代码.google.com / p /安卓/问题/细节?ID = 5001 。 这不是微软的“过失”,因为SSL证书在技术上是有效的,该缺陷是在Android的SSL实现......但它会崩溃您的网站,不过。
对谷歌的CDN的SSL证书不相抵触属于这一特定问题(与证书的“证书主题Alt名称”)的。
因此,对于SSL + Android 2.1的支持,请使用谷歌CDN。
Answer 13:
我的答案是比别人有点不同,我将与微软,如果你需要jQuery的验证,如果你正在使用jQuery几乎每个人都需要去。
微软CDN HTTP连接保持活动是大利好,当你申请多个项目。
所以,如果你需要jQuery验证,然后使用微软CDN,即使你需要jQuery UI的使用微软因为谷歌没有不守保活那么每个请求都在它自己的。 所以在这样的混合是加。 如果你仅仅是为了验证使用Microsoft那么你正在做与谷歌的服务器为每个请求单独的连接。
Answer 14:
在它说,微软没有提供UI的夏日,这是不正确的(更多)。 其可以在downloadloade http://www.asp.net/ajaxlibrary/cdn.ashx 。
Answer 15:
使用谷歌CDN时,有些时候人们作出错字如ajax.googelapis.com也可以考虑。 这可能会创造一个真正讨厌的XSS(跨站脚本)攻击。 其实我已经测试了这一点通过注册googlapis.com错字并很快发现自己的服务为JavaScript,地图,CSS等请求
我通过电子邮件谷歌,并要求他们注册类似CDN错字URL的,但一直没有收到回音。 这可能是一个真正的理由不依靠CDN的,因为有潜在的危险攻击者等待错字请求,并可以很容易地服务于背部的jQuery等与XSS负载。
谢谢
Answer 16:
根据其行业应用的目标,你可能不希望使用由其他组织管理的CDN。 它往往引起关于合规,隐私和保密的问题。
例如,当你包括谷歌Analytics(分析)在一个安全的应用程序,浏览器仍然将当前的URL作为“引荐”头。 任何标识,说会话ID或秘密令牌可能会出现在自己的日志中。 例如,如果192.0.2.5references的客户端IP HTTPS://healthsystem.example/condition/impotence ,那么好,你可以推断出这被认为是相当私人信息。
其他情况下,在URL中包括后果的信息,如账户号码,社会安全号码或会话信息。 这种类型的数据不应该在URL,因为它可以在应用程序之外使用。
虽然你可以信任谷歌,微软或雅虎,你的用户可能不会。
对于像金融,法律和医疗保健行业,你可能要与供应商的帮助下(如Akamai的),您可以签署BAA建立自己的CDN。
Answer 17:
我会建议你立足于您的目标一般用户的位置您的使用情况。
如果您的网站是针对普通大众,然后使用谷歌的CDN将是一个不错的选择。
如果您的网站也针对中国,然后使用微软的CDN将是一个更好的选择。 我从我的经验知道,作为谷歌的服务器一直得到了中国政府封锁,使网站使用它们未装载。
*请注意,您的COS创建区域特定的网站,如cn.mysite.com专门为迎合中国,但如果你用尽资源和时间,它值得考虑。
微软CDN的完整列表在这里。 http://www.asp.net/ajaxlibrary/cdn.ashx
此后,他们改名为ajax.aspnetcdn.com,它通过防火墙规则减少了堵塞的可能性。
Answer 18:
我会同时使用!
随着谷歌jQuery的托管已经出现了很多时间,有机会要高得多,人们就已经有它的缓存相比微软,所以我必须首先它。
就个人而言,我会用这样的事情 -
if (typeof jQuery == 'undefined') {
// jQuery is not loaded
document.write("<scr" + "ipt type=\"text/javascript\" src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js\"></scr" + "ipt>");
}
} else {
// jQuery is loaded
}
(不知道这100级%的作品,但我只是打算写的想法,并没有例子 - 这涉及到谷歌托管的jQuery和不是微软一个,因为我无法找到链接)