Xai*_*oft 186 javascript performance jquery cdn httprequest
实际上,您使用哪个CDN链接到您的jquery文件或任何javascript文件.一个人可能比另一个人更快吗?还有哪些其他因素可以起到决定使用哪种cdn的作用?我知道微软,雅虎和谷歌现在都有CDN.
Nic*_*ver 151
根据评论更新:
简短版:它并不重要,但可能取决于它们的主机.他们都拥有不同的东西:谷歌没有托管jQuery.Validate,微软没有托管jQuery-UI,自2016年以来他们做了!!,微软提供了他们的脚本,否则将通过ScriptResource.axd和更容易的集成(例如ScriptManager与ASP).净4.0).
重要说明: 如果您正在构建Intranet应用程序,请远离CDN方法.不要紧,谁的收留了它,除非你是在非常重载的服务器内,没有CDN会给你不是本地100MB/1GB以太网将更多的性能.如果您使用CDN进行严格的内部应用程序,则会损害性能. 正确设置缓存过期标头,并忽略仅Intranet方案中存在的CDN.
被阻挡的可能性似乎大致相等,几乎为零.我曾经合作过这种情况并非如此,但这似乎是一个例外.此外,自从这个答案的原始发布,围绕它的上下文发生了很大变化,Microsoft CDN取得了很大进展.
我目前正在使用的项目使用两种最适合我们解决方案的CDN.有几个因素影响到这一点.具有较旧浏览器的用户仍可能按照HTTP规范的建议为每个域同时发出2个请求.对于任何运行支持流水线操作(每个当前浏览器)的任何人而言,这不是一个问题,但基于另一个因素,我们正在淘汰这个限制,至少就javascript而言.
Google的CDN我们用于:
微软的CDN我们用于:
服务器:
由于我们的构建过程的一部分是组合和缩小所有自定义javascript,我们通过自定义脚本管理器执行此操作,该脚本管理器包括这些脚本的发布或调试(非缩小)版本,具体取决于构建.由于Google没有托管jQuery验证包,因此这可能是一个缺点.MVC在其2.0版本中包含/使用它,因此您可以完全依赖Microsoft的CDN来满足您的所有需求,并通过ScriptManager自动完成所有这些操作.
要做的唯一其他论点是DNS时间,在页面加载速度方面存在成本. 在平均:很简单,因为它的使用更(它已经很长时间了),ajax.googleapis.com很可能是由DNS不是越早回来ajax.microsoft.com,仅仅是因为本地DNS服务器更容易得到它的要求(这是该地区点球的第一用户) .这是一个非常小的事情,只有在性能非常重要时才应考虑,直到毫秒.
(是的:我意识到这一点与我使用两个CDN相反,但在我们的例子中,DNS时间远远超过了发生javascript /阻塞的等待时间)
最后,如果你还没有看过它,那么最好的工具之一是Firebug,还有一些插件:Page Speed和YSlow.如果您使用CDN,但由于没有缓存标题,您的页面每次都会请求图像,那么您就会错过这种低调的结果.Firebug的Net面板可以快速为您提供页面加载时间的快速细分,而Page Speed/YSlow可以提供一些很好的建议来帮助您.
Dav*_*ard 88
你应该绝对使用谷歌CDN的jQuery(这来自一个以微软为中心的开发人员).
这是简单的统计数据.那些考虑将MS CDN用于jQuery的人将永远是少数.有太多的非MS开发人员使用jQuery,他们会使用谷歌,而不会考虑使用微软的.由于公共CDN的一大胜利是改进的缓存,因此在多个CDN之间分配使用会降低这种益处的可能性.
dp.*_*dp. 18
需要考虑的一件小事是,两家公司都提供略有不同的"额外"库:
根据您的需要,这可能是相关的.
Ali*_*air 15
还应该注意的是,由于ajax.microsoft.com是microsoft.com请求的子域,因此发送所有microsoft.com cookie会增加恢复文件所需的总时间.
此外,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更受欢迎,大大增加了文件缓存的可能性.
所以我强烈建议使用谷歌.
lod*_*d3n 11
它可能没关系,但您可以通过一些A/B测试来验证这一点.将一半流量发送到一个CDN,将一半流量发送到另一个CDN,并设置一些分析来测量响应.我认为,如果一个或另一个有一些严重的不可用问题,能够轻松切换更为重要.
我知道我在这里迟到了,但这里是我在制作中使用的代码.我从来没有遇到过这个问题,但你的里程可能会有所不同.确保在自己的环境中进行测试.
<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>
Run Code Online (Sandbox Code Playgroud)
这是关于统计数据:jquery.com从谷歌加载jQuery.Twitter,Stackoverflow和许多其他人也是如此.因此,您的网站用户已经有很高的可能性已经缓存= 根本没有下载.
忘记验证器,带宽和速度,因为这是主要的好处.否则,任何其他CDN选项将基本上在同一级别执行.
一个可能比另一个更快吗?
我自己实际上对此很好奇,所以我使用以下每个设置了一个jsbin测试页,然后通过webpagetest.org的可视化比较工具运行它。我测试了:
谁是最快的:两个测试中的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
这是第二个测试(每个测试另外三个):
视频: 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
| 归档时间: |
|
| 查看次数: |
62328 次 |
| 最近记录: |