用于jQuery或Google CDN的Microsoft CDN?[关闭]

2020/10/20 02:41 · javascript ·  · 0评论

您实际上使用哪个CDN链接到您的jquery文件或任何javascript文件是否重要?一个可能比另一个更快吗?您决定在哪个CDN中使用哪些其他因素?我知道Microsoft,Yahoo和Google现在都具有CDN。

根据评论更新:

简短版本:没什么关系,但可能取决于它们托管的内容。他们都拥有不同的东西:谷歌没有托管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:

我们用于以下方面的Microsoft CDN:

我们的服务器:

  • Combined.js?v = 2.2.0.6190(Major.Minor.Iteration.Changeset)

由于构建过程的一部分是合并和最小化所有自定义javascript,因此我们通过自定义脚本管理器执行此操作,该脚本管理器根据构建情况包括这些脚本的发布或调试(非最小化)版本。由于Google没有托管jQuery验证程序包,因此这可能是不利的一面。MVC在其2.0版本中包含/使用了它,因此您可以完全依靠Microsoft的CDN来满足您的所有需求,并且所有这些都可以通过ScriptManager自动实现

唯一需要考虑的其他参数是DNS时间,这在页面加载速度方面是有代价的。 平均:仅因为使用了更多时间(时间较长)ajax.googleapis.com才比DNS更快返回DNS ajax.microsoft.com,仅是因为本地DNS服务器更有可能收到请求(这是该地区的第一位用户) 。这是一件非常小的事情,只有在性能极其重要(低至毫秒)的情况下才应考虑。
(是的:我意识到这一点与我同时使用两个CDN是相反的,但是在我们的例子中,DNS时间远远超过了发生的javascript /阻止的等待时间)

最后,如果您没有看过它,那么Firebug是其中最好的工具,还有一些它的插件:Page SpeedYSlow如果您使用CDN,但是由于没有缓存头,则页面每次都在请求图像,那么您将错过低挂的果实。Firebug的“网络”面板可以快速为您提供页面加载时间的快速细分,而页面速度/ YSlow可以提供一些很好的建议来帮助您。

您绝对应该使用jQuery的Google CDN(这是一个以Microsoft为中心的开发人员)。

这是简单的统计信息。那些考虑将MS CDN用于jQuery的人永远是少数。使用jQuery的非MS开发人员太多了,他们会使用Google的并且不会考虑使用Microsoft的。由于改进了公共CDN的最大优势之一是缓存,因此在多个CDN之间分配使用量会减少这种利益的潜力。

Google会向您发送一个使用自己的软件精简的jQuery版本,此版本比MS提供的标准精简版本轻6kb。前往Google。

要考虑的一件事是,两家公司都提供略有不同的“额外”库:

根据您的需求,这可能很重要。

还应注意,由于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.4

http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js-26.5

另外,正如其他人提到的,google CDN更为流行,这大大增加了文件被缓存的机会。

因此,我强烈建议您使用Google。

可能无关紧要,但是您可以通过一些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> 

关于统计信息:jquery.com从Google加载jQuery。Twitter,Stackoverflow等许多其他公司也是如此。因此,您的网站用户很有可能已经缓存了它=根本没有下载

忘记验证器,带宽和速度,因为这是主要优点。否则,任何其他CDN选项都将在基本上相同的级别上执行。

一个可能比另一个更快吗?

我自己实际上对此很好奇,所以我使用以下每个设置了一个jsbin测试页,然后通过webpagetest.org的可视化比较工具运行它。我测试了:

  1. ajax.googleapis.com
  2. code.jquery.com
  3. ajax.aspnetcdn.com
  4. 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

这是第二个测试(每个测试另外三个):

视频: 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

Pingdom所述

当某人访问您的站点时,如果他们已经访问了在同一CDN上使用相同jQuery文件的另一个站点,则该文件将被缓存并且根本不需要下载。它不能比这更快。

这就是说,使用最广泛的CDN的优势很大,可以为您的网站带来回报。

关于性能的一些观察:在北美和欧洲,Google的CDN始终是这三个中最慢的。在欧洲,Microsoft的CDN是最快的。

我认为这取决于您的目标受众在哪里。您可以使用alertra.com检查来自世界各地的CDN速度。

另一个注意事项-如果您的站点是SSL,并且您需要支持Android 2.1(或更早版本),则Microsoft CDN的HTTPS版本上的SSL证书将使Android浏览器的这些版本崩溃,具体请参见此问题:http:// code .google.com / p / android / issues / detail?id = 5001这不是Microsoft的“故障”,因为SSL证书在技术上是有效的,并且缺陷存在于Android的SSL实施中……但是,它仍然会使您的网站崩溃。

Google的CDN上的SSL证书不属于此特定问题(与证书的“证书主题替代名称”有关)。

因此,要获得SSL + Android 2.1支持,请使用Google CDN。

我的答案与其他答案略有不同,如果您需要jquery验证程序,那么我将选择microsoft,如果您使用的是jquery,几乎每个人都需要。

Microsoft CDN http连接保持活动状态,这在您请求多个项目时非常重要。

因此,如果您需要jquery验证,那么请使用Microsoft CDN,即使您需要jquery ui,也请使用microsoft,因为google不会保持活动状态,因此每个请求都是独立的。所以以这种方式混合是加分 如果您仅将Microsoft用于验证程序,则针对每个请求与Google服务器进行单独连接。

在总结中,它说微软没有提供UI,这是不正确的(不再)。可以从http://www.asp.net/ajaxlibrary/cdn.ashx下载

还要考虑使用Google CDN时,有时人们会打错字,例如ajax.googelapis.com。这可能会造成真正讨厌的xss(跨站点脚本)攻击。我实际上通过注册googlapis.com错字测试了这一点,很快发现自己正在处理对javascript,地图,css等的请求。

我通过电子邮件发送给Google,并要求他们注册类似的CDN错字网址,但没有收到回复。这可能是不依赖CDN的真正原因,因为有潜在危险的攻击者正在等待输入错误,并且可以轻松地向xquery等带有xss有效负载的服务。

谢谢

根据应用程序针对的行业,您可能不想使用其他组织管理的CDN。它经常引起有关合规性,隐私和机密性的问题。

例如,当您在安全的应用程序中包含Google Analytics(分析)时,浏览器仍然会将当前URL发送为“引荐来源”标头。任何标识符,例如会话ID或秘密令牌,都可能会出现在其日志中。例如,如果192.0.2.5的客户端IP引用https://healthsystem.example/condition/impotence,那么您可以推断出相当私有的信息。

其他情况包括后果信息,例如帐号,社会保险号或URL中的会话信息。这类数据绝对不能放在URL中,因为它可以在应用程序外部使用。

尽管您可能信任Google,Microsoft或Yahoo,但您的用户却可能不信任。

对于金融,法律和医疗保健等行业,您可能希望在可以签署BAA的供应商(例如Akamai)的帮助下建立自己的CDN。

我建议您将使用情况作为目标用户的一般位置。

如果您的网站面向大众,那么使用Google的CDN将是一个不错的选择。

如果您的网站也针对中国,那么使用Microsoft的CDN将是一个更好的选择。我从经验中知道,由于Google的服务器一直受到中国政府的封锁,导致使用它们的网站无法加载。

*请注意,您可以cos创建针对特定地区的站点,例如cn.mysite.com以专门针对中国,但是如果您的资源和时间不足,则值得考虑。

Microsoft CDN的完整列表在这里。
http://www.asp.net/ajaxlibrary/cdn.ashx

此后它们已重命名为ajax.aspnetcdn.com,从而减少了被防火墙规则阻塞的可能性。

我会同时使用!

由于Google Jquery托管已经存在了很长时间,因此与Microsoft相比,人们已经可以对其进行缓存的可能性要高得多,因此我将首先对其进行托管。

就个人而言,我会使用这样的内容-

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%是否可行,但我只是想写这个主意,而不是示例-本次引用的是Google托管的Jquery,而不是Microsoft的Jquery,因为我找不到链接)

本文地址:http://javascript.askforanswer.com/yongyujqueryhuogoogle-cdndemicrosoft-cdnguanbi.html
文章标签: ,   ,   ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!