Actualmente, estamos extrayendo las bibliotecas jQuery y jQueryUI (y jQueryUI CSS) de Google CDN. Me gusta esto porque puedo llamar google.load("jquery", "1");
y se usará la última versión de jQuery 1.xx.
Ahora debo extraer las bibliotecas localmente por motivos de seguridad.
Estoy feliz de sacarlos localmente, pero me pregunto cuáles son algunos de los otros beneficios y trampas a tener en cuenta.
javascript
jquery
jquery-ui
cdn
orolo
fuente
fuente
Respuestas:
El principal beneficio de tenerlos en un CDN es que los archivos se pueden descargar en paralelo a los archivos descargados de su propio sitio web. Esto reduce la latencia en cada página. Por lo tanto, la otra cara de la moneda es el problema del alojamiento local: mayor latencia . La razón principal de esto es que los navegadores están limitados en el número de conexiones que pueden realizar al mismo tiempo al mismo dominio web. En IE6, esto se estableció de forma predeterminada en 2 conexiones simultáneas al mismo dominio, ¡ compartido entre todas las ventanas abiertas de IE! En IE8 + mejoró, con un valor predeterminado de 6, que está en línea con FF / Chrome, pero aún así, si tiene muchas imágenes y no está usando sprites, experimentará una gran latencia.
Usando una CDN, siempre establecería la versión de la biblioteca explícitamente en lugar de obtener la última. Esto reduce el riesgo de que nuevas versiones rompan su código. No es muy probable con jQuery, pero es posible.
El otro beneficio principal de usar una CDN es la reducción del tráfico en su sitio . Si paga por GB o está en un servidor virtual con recursos limitados, es posible que observe que el rendimiento general del sitio aumenta y los costos de alojamiento se reducen cuando transfiere parte de su contenido a un CDN público.
Asegúrese de leer también la otra respuesta a esta pregunta de @Xaver. Este es un truco muy bueno
fuente
Siempre uso la CDN (Content Delivery Network) de Google. Pero en caso de que esté fuera de línea:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> <script>!window.jQuery && document.write('<script src="jquery-1.4.2.min.js"><\/script>')</script>
Toma jQuery de Google CDN y recurre a local si es necesario
Editar : si no necesita ser compatible con IE6 y su sitio tiene un uso parcial de https, también puede eliminar el http:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
fuente
!window.jQuery...
)?<script>
Las etiquetas se procesan de forma asincrónica, ¿verdad?<script>
¡las etiquetas se procesan sincrónicamente! En la segunda línea, jQuery ya debe estar cargado, pero por si acaso, si no, inyectamos algo de JS para cargarlo localmente. Eldocument.write
no se ejecutará si jQuery existe ya.Otros han cubierto los beneficios. Escollos:
Si solo incluye contenido de su propio servidor, ese es un servidor que debe estar en ejecución y no bloqueado por firewalls, etc. Extraiga el script de un tercero y ahora son dos servidores que deben ejecutarse y desbloquearse para que su sitio funcione.
Cualquier sitio del que acceda
<script>
puede controlar por completo la experiencia del usuario en su sitio. Si Google se sintiera mal, podrían poner algo en su copia de jQuery para registrar sus pulsaciones de teclas, robar información personal de la página en la que se encuentra para vincularla a su base de datos de seguimiento web, hacer que publique "¡Me encanta Google!" comentarios a todos los formularios, y así sucesivamente.Es probable que Google no vaya a hacer eso, pero es un factor que está fuera de su control y, ciertamente, algo de lo que preocuparse con otros servicios de alojamiento de scripts. Ha habido incidentes antes en los que los scripts de estadísticas se han visto comprometidos con los cargadores de malware.
Antes de incluir cualquier secuencia de comandos de un tercero, incluso en una sola página de su sitio, debe confiar al 100% en todas las funciones accesibles para el usuario visibles en ese nombre de host (incluidas las funciones de administración web).
fuente
Google CDN:
En la zona:
fuente
if a new version breaks your existing plugins or site, you'll know about it possibly too late
puede especificar la versión en el enlace CDN, para evitar eso.Prefiero usar mi versión local, porque no tengo control sobre lo que proporcionarán. Por ejemplo, no quiero que mis usuarios se vean afectados por google-analytics o algo similar, porque este es un problema legal en mi país.
fuente
Beneficios: (específicamente para CDN de Google)
fuente
Prácticamente de todas las formas en que lo mires, usar la CDN de Google es algo bueno.
El rendimiento mejorará (aunque de forma bastante marginal, a menos que su sitio esté realmente ocupado), y la cantidad de datos que deben transmitir sus servidores disminuirá (aunque jQuery no es exactamente una descarga enorme), etc.
La única razón por la que no querrías usarlo es si no confías en Google. Al usarlo, le está dando a Google una ventana adicional de información en el perfil de tráfico de su sitio, incluido el conocimiento de las URL que de otro modo no querría hacer públicas (por ejemplo, áreas seguras de su sitio).
Si está paranoico con la seguridad, esto puede ser suficiente para persuadirlo de que no los use (después de todo, alojarlo usted mismo no va a ralentizar su sitio exactamente), pero en general la mayoría de la gente adoptaría una visión pragmática que Google ya sabe lo suficiente sobre su sitio, por lo que agregarlo no hará mucha diferencia.
fuente
Probablemente sea una minoría hoy en día, pero yo diría que no desea usar CDN a menos que realmente lo necesite. Los factores clave para empezar a utilizarlo son:
Pero ... la cuestión es que estos puntos no son realmente aplicables al 90% de los sitios web del mundo. Apuesto a que no eres Facebook con millones de usuarios en línea en todo el mundo, no eres Pornhub con cientos de GB transferidos por segundo.
Si su sitio web está dirigido a usuarios de su ciudad / país y la capacidad de un servidor es suficiente para la cantidad de usuarios que tiene, ¿por qué querría una CDN? Es más rápido para sus usuarios en su ciudad y más simple para usted buscar todo de su servidor principal localmente.
Se trataba más de CDN en general, ahora permítanme estar más cerca de la pregunta real sobre jQuery o cualquier otra biblioteca.
Si desea que su sitio web permanezca accesible y funcione sin mantenimiento durante más de un año, digamos, colóquelo localmente. Las bibliotecas de hoy en día se están actualizando a un ritmo loco que probablemente no quieras seguir. Y las versiones antiguas se eliminarán eventualmente. Además, toda la biblioteca puede morir (aunque probablemente no sea aplicable a jQuery).
De mi experiencia reciente, actualicé TinyMCE en el sitio web que mantengo de 3.xx (con fecha de 2012) a 5.xx (con fecha de primavera de 2019). Este sitio web estuvo funcionando durante 7 (¡siete!) Años sin ningún mantenimiento en esta parte de la lógica. En ese entonces no existía el concepto de "minificación" y las CDN no eran tan comunes como ahora. Pero incluso si fueran comunes, nunca se sabe lo que sucederá en 3-5-10 años a partir de ahora. Por lo general, desea que su sitio web se mantenga vivo incluso sin que usted lo mantenga, ¿no es así? Sin embargo, si extrae jQuery de CDN hoy, este enlace puede (y probablemente se romperá) en 5 años.
La solución con CDN Y el respaldo a la versión local como sugirió @Xaver puede ser un buen compromiso. Pero ... ¿tal vez simplemente deshacerse del enlace CDN? ;)
fuente
Para mí, realmente depende de cuánto control desees tener. Si eres como yo y necesitas desarrollarte en un anfitrión local cuando trabajas y viajas. Tener los archivos jquery locales es mejor que tenerlos alojados en Google o en otro lugar.
fuente