Microsoft CDN para jQuery o Google CDN? [cerrado]


¿Realmente importa qué CDN se utiliza para vincular a su archivo jquery o cualquier archivo javascript para el caso. ¿Es uno potencialmente más rápido que el otro? ¿Qué otros factores podrían desempeñar un papel en la cdn que decida utilizar? Sé que Microsoft, Yahoo, y Google todos tienen CDN ahora.

Author: Ufuk Hacıoğulları, 2009-09-19

18 answers

Actualización basada en comentarios:

Versión Corta: no importa mucho, pero puede depender de lo que son los anfitriones. Todos alojan cosas diferentes: Google no aloja jQuery.Validar, Microsoft no host jQuery-UI, desde 2016 lo hacen!!, Microsoft ofrece sus scripts que de otro modo se servirían a través de ScriptResource.axd y una integración más fácil (por ejemplo, ScriptManager con ASP.Net 4.0 ).

Nota importante: Si está creando una intranet aplicación, manténgase alejado del enfoque CDN. No importa quién lo aloje, a menos que esté en un servidor muy sobrecargado internamente, ningún CDN le dará más rendimiento que el ethernet local de 100mb/1GB. Si utiliza una CDN para una aplicación estrictamente interna, está perjudicando el rendimiento. Establezca correctamente los encabezados de caducidad de la caché e ignore las CDN existentes en el escenario solo para intranet.

Las posibilidades de ser bloqueado parece ser casi igual, casi cero. He trabajado en contratos donde esto no es cierto, pero parece ser una excepción. Además, desde la publicación original de esta respuesta, el contexto que la rodea ha cambiado mucho, la CDN de Microsoft ha hecho mucho progreso.

El proyecto en el que estoy actualmente usa ambas CDN que funcionan mejor para nuestra solución. Varios factores juegan en esto. Los usuarios con un navegador anterior probablemente todavía están haciendo 2 solicitudes simultáneas por dominio como recomienda el HTTP especificación. Esto no es un problema para cualquiera que ejecute algo decentemente nuevo que soporte el pipelining (cada navegador actual), pero basado en otro factor también estamos eliminando esta limitación, al menos en lo que respecta al javascript.

CDN de Google que estamos utilizando para:

La CDN de Microsoft que estamos usando por:

Nuestro servidor:

  • Combinados.js?v = 2.2.0.6190 (Mayor.Menor.Iteración.Conjunto de cambios)

Dado que parte de nuestro proceso de compilación es combinar y reducir todo javascript personalizado, lo hacemos a través de un gestor de scripts personalizado que incluye la liberación o depuración versiones (no minificadas) de estos scripts dependiendo de la compilación. Dado que Google no aloja el paquete de validación de jQuery, esto puede ser un inconveniente. MVC está incluyendo / usando esto en su versión 2.0, por lo que podría confiar completamente en la CDN de Microsoft para todas sus necesidades, y todo ello automático a través del ScriptManager.

El único otro argumento que se haría serían los tiempos de DNS, hay un costo para esto en términos de velocidad de carga de la página. En promedio: Simplemente porque se usa más (ha existido por más tiempo) ajax.googleapis.com es probable que sea devuelto por DNS antes que ajax.microsoft.com, simplemente porque el servidor DNS local era más probable que recibiera una solicitud para él (este es el primer usuario en la penalización de área). Esto es una muy cosa menor y solo debe considerarse si el rendimiento es extremadamente importante, hasta el milisegundo.
(Sí: Me doy cuenta de que este punto es contrario a mi uso de ambas CDNs, pero en nuestro caso el tiempo de DNS está muy eclipsado por el tiempo de espera en el javascript/bloqueo que se produce)

Por último, si no lo has mirado, una de las mejores herramientas que hay es Firebug, y algunos complementos para él: Page Speed y YSlow. Si utiliza una CDN pero sus páginas están solicitando imágenes cada vez debido a que no hay encabezados de caché, se está perdiendo la fruta que cuelga bajo. El panel de red de Firebug puede darte rápidamente un desglose rápido del tiempo de carga de tu página, y Page Speed/YSlow puede ofrecer algunas buenas sugerencias para ayudarte.

 150
Author: Nick Craver,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-29 16:23:10

Usted debe utilizar absolutamente la CDN de Google para jQuery (y esto viene de un desarrollador centrado en Microsoft).

Son simples estadísticas. Aquellos que considerarían usar MS CDN para jQuery siempre serán una minoría. Hay demasiados desarrolladores que no son de MS que usan jQuery que usarán Google y no considerarían usar Microsoft. Desde una de las grandes victorias con una CDN pública es el almacenamiento en caché mejorado, dividir el uso entre múltiples CDN disminuye el potencial para eso beneficio.

 88
Author: Dave Ward,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-26 17:37:30

Google le enviará una versión de jQuery minificada con su propio software, esta versión es 6 kb más ligera que la versión estándar minificada servida por MS.Go para Google.

 20
Author: Oscar Kilhed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-12-30 12:55:27

Una cosa menor a considerar es que ambas compañías ofrecen bibliotecas "extra" ligeramente diferentes:

Dependiendo de sus necesidades, esto puede ser pertinente.

 18
Author: dp.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-01-15 12:26:55

También debe tenerse en cuenta que como ajax.microsoft.com es un subdominio de microsoft.com solicitudes enviar todo microsoft.com las cookies se suman al tiempo total que tarda en recuperar el archivo.

También, ajax.microsoft.com está utilizando la compresión IIS7 predeterminada, que es inferior a la compresión estándar que utilizan otros servidores web.

Http://ajax.microsoft.com/ajax/jquery/jquery-1.4.4.min.js - 33,4 K

Http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js - 26,5 K

También, como otros han mencionado, Google CDN es mucho más popular, lo que aumenta en gran medida la posibilidad de que un archivo se almacene en caché.

Así que recomiendo encarecidamente usar Google.

 15
Author: Alistair,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-21 22:46:38

Probablemente no importa, pero podría validar esto con algunas pruebas A / B. Envía la mitad de tu tráfico a una CDN y la otra mitad a la otra, y configura algunos perfiles para medir la respuesta. Creo que es más importante poder cambiar fácilmente en caso de que uno u otro tuviera algunos problemas graves de indisponibilidad.

 11
Author: lod3n,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-18 23:20:25

Sé que estoy tocando un poco tarde aquí, pero aquí está el código que he estado usando en producción. Nunca he tenido problemas con él, pero su kilometraje puede variar. Asegúrese de probarlo en su propio entorno.

<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> 
 7
Author: Jeremy Cade,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-08-12 11:29:57

Se trata de estadísticas: jquery.com carga jQuery desde Google. Y también Twitter, Stackoverflow y muchos muchos otros. Por lo tanto, hay muchas posibilidades de que el usuario de su sitio web ya lo tenga almacenado en caché = sin descarga en absoluto.

Olvídese del validador, el ancho de banda y la velocidad porque este es el mayor beneficio. De lo contrario, cualquier otra opción de CDN funcionará esencialmente al mismo nivel.

 7
Author: achairapart,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-09-23 02:38:23

¿Es uno potencialmente más rápido que el otro?

En realidad tenía curiosidad por esto, así que configuré una página de prueba de jsbin usando cada uno de los siguientes y luego la ejecuté webpagetest.org ' s herramienta de comparación visual. He probado:

  1. ajax.googleapis.com
  2. code.jquery.com
  3. ajax.aspnetcdn.com
  4. cdnjs.cloudflare.com

Quién fue el más rápido: code.jquery.com en 0,1 segundos en ambas pruebas

Quién fue el más lento: ajax.aspnetcdn.com 0,7 segundos en la primera prueba y ajax.googleapis.com 1 segundo en la segunda prueba

Aquí está el 1st test (cada uno fue probado 3 veces):

Video: http://www.webpagetest.org/video/view.php?id=121019_16c5e25eff2937f63cc1714ed1eac814794e62b3

Informes: http://www.webpagetest.org/video/compare.php?tests=121019_D2_KF0,121019_9Q_KF1,121019_WW_KF2,121019_9K_KF3

Aquí está la 2a prueba (otras 3 cada una):

Video: http://www.webpagetest.org/video/view.php?id=121019_a7b351f706cad2c25664fee7ef349371f17c4e74

Informes: http://www.webpagetest.org/video/compare.php?tests=121019_MP_KJN,121019_S6_KJP,121019_V9_KJQ,121019_VY_KJR

 4
Author: Anthony Hatzopoulos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-19 19:25:10

Creo que depende de dónde está su público objetivo. Usted puede utilizar alertra.com para comprobar tanto la velocidad de CDN desde muchos lugares en todo el mundo.

 3
Author: silent,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-10-11 08:36:29

Una consideración adicional: si su sitio es SSL y necesita admitir Android 2.1 (o anterior), el certificado SSL en la versión HTTPS de la CDN de Microsoft bloqueará esas versiones del navegador Android, por este problema: http://code.google.com/p/android/issues/detail?id=5001 . No es "culpa" de Microsoft, ya que el certificado SSL es técnicamente válido y el defecto está en la implementación de SSL de Android... pero bloqueará su sitio, sin embargo.

El certificado SSL en CDN de Google no entra en conflicto con este problema en particular (en relación con el certificado "Certificado Sujeto Alt Nombre").

Entonces, para el soporte SSL + Android 2.1, use la CDN de Google.

 3
Author: Kent McNeill,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-01-20 23:58:11

Según lo declarado por Pingdom :

Cuando alguien visita tu sitio, si ya ha visitado otro sitio que utiliza el mismo archivo jQuery en la misma CDN, el archivo se han almacenado en caché y no necesita ser descargado en absoluto. No puede más rápido que eso.

Esto significa que la CDN más utilizada tendrá las probabilidades en su lado, que puede pagar por su sitio.

Algunas observaciones sobre el rendimiento: CDN de Google es consistentemente el más lento de los tres tanto en América del Norte y Europa. En Europa, la CDN de Microsoft es la más rápida.

 3
Author: mayank,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-16 15:45:11

Mi respuesta es un poco diferente a los demás, iré con microsoft si necesita un validador de jquery que casi todo el mundo necesita si está utilizando jquery.

La conexión http CDN de Microsoft se mantiene activa, lo que es una gran ventaja cuando solicita varios elementos.

Entonces, si necesita validación de jquery, use Microsoft CDN, incluso si necesita jquery ui use microsoft porque Google no no mantiene keep-alive, por lo que cada solicitud está por su cuenta. así que mezclar de esa manera es más. si está usando microsoft solo para validador, entonces está haciendo una conexión separada con el servidor de Google para cada solicitud.

 2
Author: mamu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-08-19 04:56:32

En el verano dice que Microsoft no está ofreciendo interfaz de usuario, que no es correcto (más). Puede descargarse en http://www.asp.net/ajaxlibrary/cdn.ashx .

 1
Author: Netsi1964,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-04 13:09:08

También considere al usar Google CDN que algunas veces la gente hace errores tipográficos como ajax.googelapis.com. Esto podría potencialmente crear un ataque xss (cross site scripting) realmente desagradable. De hecho, he probado esto mediante el registro de una googlapis.com error tipográfico y muy rápidamente me encontré sirviendo solicitudes de javascript, mapas, css, etc.

Envié un correo electrónico a Google y les pedí que registraran URL de error tipográfico de CDN similares, pero no he recibido respuesta. Esto podría ser una verdadera razón para no confiar en CDN porque hay son atacantes potencialmente peligrosos a la espera de las solicitudes de error tipográfico y puede servir fácilmente de nuevo jquery etc con una carga útil xss.

Gracias

 1
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-07-15 21:12:52

Le aconsejo que base su uso en la ubicación general de los usuarios a los que se dirige.

Si su sitio está dirigido al público en general, entonces usar la CDN de Google sería una buena opción.

Si su sitio también está dirigido a China, entonces usar CDN de Microsoft sería una mejor opción. Lo sé por mi experiencia, ya que los servidores de Google siguen siendo bloqueados por el gobierno chino, lo que hace que los sitios web que los utilizan sean inutilizables.

* Tenga en cuenta que puede crear cos sitios específicos de la región, p. ej. cn.mysite.com para atender específicamente a China, pero si tienes pocos recursos y tiempo, vale la pena considerarlo.

Lista completa de Microsoft CDN aquí. http://www.asp.net/ajaxlibrary/cdn.ashx

Desde entonces han cambiado su nombre a ajax.aspnetcdn.com , lo que reduce la probabilidad de bloqueo por las reglas del firewall.

 1
Author: KnaveT,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-18 01:09:51

Dependiendo de la industria a la que se dirija la aplicación, es posible que no desee usar una CDN administrada por otras organizaciones. A menudo plantea cuestiones relativas al cumplimiento, la privacidad y la confidencialidad.

Por ejemplo, cuando se incluye Google Analytics en una aplicación segura, el navegador todavía envía la URL actual como el encabezado "referer". Cualquier identificador, por ejemplo, un id de sesión o token secreto puede aparecer en sus registros. Por ejemplo, si una IP de cliente de 192.0.2.5 hace referencia https://healthsystem.ejemplo / condición / impotencia , entonces bien, puede inferir información que se considera bastante privada.

Otros casos incluyen información de consecuencia, como un número de cuenta, número de seguro social o información de sesión en la URL. Ese tipo de datos nunca debe estar en la URL, ya que se puede utilizar fuera de la aplicación.

Si bien puede confiar en Google, Microsoft o Yahoo, sus usuarios no pueden hacerlo.

Para industrias como las Finanzas, Legal y de Atención médica, es posible que desee establecer su propia CDN con la ayuda de un proveedor (por ejemplo, Akamai) con el que pueda firmar un BAA.

 0
Author: bloudraak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-16 02:31:52

Yo usaría ambos!

Como el alojamiento de Google Jquery ha existido mucho más tiempo, las posibilidades son mucho mayores de que la gente ya lo tenga en caché en comparación con el de Microsoft, por lo que lo tendría primero.

Personalmente, usaría algo como esto -

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
}

(No estoy seguro de que este 100% funcione, pero solo iba a escribir la idea y no el ejemplo, esto hace referencia al Jquery alojado en Google y no al de Microsoft, ya que no pude encontrar el enlace)

 -3
Author: Wil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-10-11 11:39:12