Biblioteca alojada en Google jQuery: ¿es buena?

14

¿Existe algún beneficio REAL al tocar el uso de la biblioteca alojada jQuery de Google? ¿O simplemente lo descargamos a nuestro servidor?

Cual es tu opinión sobre esto?

León
fuente
1
Una simple búsqueda en Google habría proporcionado la respuesta ...
Francisco Presencia

Respuestas:

18

Existen dos ventajas principales al usar un CDN externo como Google para alojar jQuery:

  1. Es mas rapido. Sin duda será más rápido que su sitio, y probablemente más rápido que cualquier CDN que configure usted mismo.
  2. Puede que ya esté en caché . Muchos sitios también hacen referencia a jQuery en el CDN de Google, por lo que si visitaron otro sitio antes que el suyo, ni siquiera necesitarán descargarlo.

Posibles inconvenientes:

  1. El dominio puede estar bloqueado (esto es bastante común en lugares como China). Puede resolver esto teniendo un respaldo local ( vea aquí cómo ).
  2. La fragmentación de los números de versión es bastante alta, por lo que los visitantes de su sitio pueden tener muchas versiones diferentes en caché, pero no la que usted mencionó ( consulte aquí para ver algunas estadísticas recientes ). Sin embargo, esto es solo un problema en la carga de la primera página.
Cabra descontento
fuente
3
¿Puedes publicar una referencia sobre cómo configurar una reserva local?
Stephen Ostermiller
1
Como Zistolen señala antes, otro beneficio es que descargará en paralelo a sus sitios web otros activos. Es posible que desee agregar eso también a esta excelente respuesta.
nathangiesbrecht
Eso es un poco engañoso. Los navegadores descargan activos en paralelo, independientemente de dónde estén alojados, pero hay un límite para la cantidad de cosas que descargarán del mismo host a la vez.
Fuente de Tim
Me salteé eso, honestamente, no está aquí ni allá: el archivo puede descargarse en paralelo, pero también es una búsqueda de DNS adicional. Además, cualquier diferencia en el tiempo que haga cualquiera de esas marcas es insignificante de todos modos.
DisgruntledGoat
Lo suficientemente justo. Pero en conexiones rápidas, ¿no puede resultar en un tiempo de carga total más rápido, ya que se puede usar más "tubería"?
nathangiesbrecht
11

Otro inconveniente:

El uso de un CDN permite al operador del CDN rastrear los visitantes de los sitios. Por eso no cuestan dinero.

Jost
fuente
Seguimiento seguro, pero no de visitantes: tanto la propia CDN de jquery como la de jquery de google están alojadas en dominios que no configuran ni utilizan cookies (esto probablemente también sea una optimización del rendimiento), y no hay información realmente identificable en la solicitud. El proveedor de CDN puede tener una idea sobre las direcciones IP y algunas estadísticas sobre las cadenas de agentes de usuario y los referentes. Esto probablemente sea valioso, pero no es en sí mismo un gran riesgo de privacidad (si estos registros se correlacionan con otra base de datos, por ejemplo, anuncios personalizados publicados en momentos similares, entonces tal vez podría ser un medio de seguimiento).
Eamon Nerbonne
Creo que se puede dar por sentado (en el caso de google), que los datos están correlacionados con otras bases de datos, ya que casi todos usan google para buscar todo el tiempo. Lo mismo con las fuentes de google: recientemente intenté alojar las fuentes en un servidor, pero descubrí que es muy difícil hacerlo. Google no lo prohíbe (código abierto), pero no le proporcionan los archivos listos para usar: puede compilarlos usted mismo (pero no hay un archivo MAKE), o puede falsificar solicitudes al servidores que se utilizan para entregarlos normalmente. Ambos no son factibles para un no técnico.
Jost
Quizás. No tengo ninguna información privilegiada, por lo que es difícil decirlo con certeza. Sin embargo, estoy seguro de que tendrá errores y tendrá brechas significativas: la mayoría de los lugares en los que uso Internet tienen NAT, y varios tienen bastantes usuarios con máquinas similares (probablemente cadenas UA idénticas); sería imposible saber qué solicitud de quien. Y, por supuesto, con los botones adsense y de intercambio social, casi siempre tienen medios más confiables, así que puedo imaginar que no se molestan. En cuanto a las fuentes: las he descargado varias veces, así que no entiendo muy bien lo que quieres decir con que esto es difícil.
Eamon Nerbonne
Para ser claros: supongo que la mayoría de las visitas al sitio web que realiza pueden y serán rastreadas por los grandes recopiladores de estadísticas en virtud de los botones de intercambio social (bastante generalizados) y los anuncios, que están en todas partes. Entonces, me pregunto cuán valiosa es la información posiblemente engañosa de solicitudes js muy almacenadas en caché: estoy apostando, no muy, por lo tanto, supongo que no se molestan en tratar de identificar personalmente a las personas que usan JS servidos por CDN.
Eamon Nerbonne
No está tan almacenado en caché como se podría pensar: al incrustar fuentes usando la forma en que Google lo prefiere insertando un enlace CSS a fonts.googleapis.com, cada vista de página abre una conexión a google (puede verlas en Firebug). No importa si está en caché o no. En cuanto a la descarga: ¿Puede indicarme un lugar donde pueda descargar las fuentes en formato eot, woff, ttf y svg de alta calidad (las mismas versiones que ofrece google, sin convertidores externos)?
Jost
3

El uso de CDN (s) para dividir sus dependencias en muchos servidores como este en esencia representa una compensación entre el ancho de banda y la latencia, suponiendo que solo le interese el rendimiento.

Por cierto, supongo que la alternativa no es simplemente alojarlo localmente, sino concatenarlo con una solicitud local diferente; por lo general, no hay una buena razón para no concatenar cuando puede.

Si el ancho de banda es infinito, es mejor que NO participe, porque será tan lento como su servicio más lento, ya que las latencias no son perfectamente predecibles, con suficientes servicios, incluso si son rápidos, solo necesita un poco de mala suerte para causar una carga lenta de la página.

Si la latencia es 0, entonces distribuir su carga en muchos servidores puede mejorar el ancho de banda al utilizar muchos servidores (no es tan útil ya que probablemente las limitaciones de ancho de banda están cerca de los clientes, no de los servidores), pero lo más importante, puede reducir la cantidad de datos transmitidos ligeramente al aumentar la efectividad del almacenamiento en caché.

Depende de su escenario, pero generalmente esperaría que la latencia sea más problemática que el ancho de banda, a menos que sus scripts sean increíblemente grandes (lo que no es jquery). En ese punto, generalmente es más rápido alojar jquery como parte de un archivo local concatenado.

Las razones para no alojar localmente son, por ejemplo, cuando paga por el ancho de banda, o está alojando en un servidor lento (su conexión con el cliente tiene un cuello de botella de su lado, no del cliente), o sabe que sus clientes tendrán un ancho de banda realmente bajo (dsl o módems de gama baja, por ejemplo, los dispositivos móviles tienden a tener más problemas de latencia que problemas de ancho de banda), o sus clientes pagan por el ancho de banda (por ejemplo, dispositivos móviles) y las secuencias de comandos son una parte tan notable de eso que el almacenamiento en caché menor gana importancia (no es probable )

En cualquier caso: mucho más relevante será si ha cubierto lo básico primero; Encabezados de almacenamiento en caché apropiados, concatenación, minificación y gzipping (preferiblemente con una alta relación de compresión). Y aquí está el quid: si NO haces eso, entonces al menos el CDN lo hará, así que eso es ganar ...

TL; DR: si tiene concatenación + minificación + gzipping + almacenamiento en caché todo cubierto, entonces servir scripts pequeños localmente es más rápido que desde un CDN a pesar del mejor rendimiento del CDN, pero solo si ha hecho su tarea, posiblemente no en la primera página carga, y definitivamente hay excepciones a esta regla.

Eamon Nerbonne
fuente
Por cierto, hay algunos recortes de bytes ganados mediante el uso de una sola solicitud: los encabezados por sí solos suman casi 1kb, lo que con una carga útil de 28k no es nada. gzip funciona mejor con más contexto, lo que ahorra otros 0.5k. Los gastos generales de TCP, DNS, HTTPS pueden agregar fácilmente un KB aquí o allá, y peor aún, RTT. Es por eso que para archivos pequeños como este, un CDN no es tan rápido como podría pensar.
Eamon Nerbonne
1

El uso de la biblioteca alojada jQuery por Google permite que su página se cargue más rápido. De hecho, la biblioteca se carga al mismo tiempo que su página en lugar de después.

Zistoloen
fuente
Pero, ¿cómo afecta la carga de la página?
Leo
1
Las bibliotecas locales también se cargan mientras se carga la página: en ambos casos, la descarga del activo comienza cuando el navegador (moderno) ve el fragmento de código que desencadena la descarga, lo que generalmente ocurre antes de descargar todo el documento. Ver esta pantalla Firebug para un ejemplo
Jost