Microsoft CDN for jQuery 还是 Google CDN?[已关闭]
您使用哪个CDN链接到jquery文件或任何javascript文件实际上重要吗?一个可能比另一个更快吗?还有哪些其他因素可以在您决定使用的 cdn 中发挥作用?我知道微软,雅虎和谷歌现在都有CDN。
您使用哪个CDN链接到jquery文件或任何javascript文件实际上重要吗?一个可能比另一个更快吗?还有哪些其他因素可以在您决定使用的 cdn 中发挥作用?我知道微软,雅虎和谷歌现在都有CDN。
根据评论进行更新:
简短版本:这并不重要,但这可能取决于他们托管的内容。它们都托管不同的东西:Google不托管jQuery.Validate,Microsoft不托管jQuery-UI,自2016年以来他们这样做!!,Microsoft提供了他们的脚本,否则可以通过这些脚本提供并且更容易集成(例如,ScriptManager与 ASP.Net 4.0)。ScriptResource.axd
重要提示:如果要构建 Intranet 应用程序,请远离 CDN 方法。谁托管它并不重要,除非您在内部非常过载的服务器上,否则没有CDN会比本地100mb / 1GB以太网为您提供更高的性能。如果将 CDN 用于严格的内部应用程序,则会损害性能。正确设置缓存过期标头并忽略仅 Intranet 方案中存在的 CDN。
任何一个被阻止的机会似乎大致相等,几乎为零。我曾经在合同上工作过,但事实并非如此,但这似乎是一个例外。此外,自最初发布此答案以来,围绕它的上下文发生了很大变化,Microsoft CDN取得了很大进展。
我目前正在进行的项目使用最适合我们解决方案的两个CDN。有几个因素在起作用。使用较旧浏览器的用户可能仍然会按照 HTTP 规范的建议,对每个域同时发出 2 个请求。对于任何运行任何支持流水线(每个当前浏览器)的体面新事物的人来说,这都不是问题,但是基于另一个因素,我们也正在消除这个限制,至少就javascript而言。
谷歌的CDN,我们用于:
微软的CDN,我们用于:
我们的服务器:
由于我们的构建过程的一部分是组合和缩小所有自定义javascript,我们通过自定义脚本管理器来执行此操作,该脚本管理器包括这些脚本的发布或调试(非缩小)版本,具体取决于构建。由于Google不托管jQuery验证包,因此这可能是一个缺点。MVC在其2.0版本中包含/使用它,因此您可以完全依靠Microsoft的CDN来满足您的所有需求,并且所有这些都可以通过ScriptManager自动完成。
唯一要提出的其他论点是DNS时间,这在页面加载速度方面是有代价的。平均:仅仅因为它被使用得更多(它已经存在了更长的时间),很可能被DNS更早地返回,仅仅是因为本地DNS服务器更有可能获得对它的请求(这是区域惩罚中的第一个用户)。这是一件非常小的事情,只有在性能非常重要时才应该考虑,直到毫秒。
(是的:我意识到这一点与我使用两个CDN相反,但在我们的例子中,DNS时间被发生的javascript/阻塞的等待时间所掩盖)ajax.googleapis.com
ajax.microsoft.com
最后,如果你还没有看过它,最好的工具之一是Firebug,以及它的一些插件:Page Speed和YSlow。如果您使用CDN,但由于没有缓存标头,您的页面每次都请求图像,那么您就错过了唾手可得的果实。Firebug的Net面板可以快速为您提供页面加载时间的快速细分,Page Speed/ YSlow可以提供一些很好的建议来提供帮助。
你绝对应该使用谷歌CDN for jQuery(这来自一个以微软为中心的开发人员)。
这是简单的统计数据。那些考虑将MS CDN用于jQuery的人将永远是少数。有太多使用jQuery的非MS开发人员将使用Google的,并且不会考虑使用Microsoft的。由于公共 CDN 的一大优势是改进了缓存,因此在多个 CDN 之间拆分使用会降低该好处的可能性。