sirve que precio philip para morris mexico marlboro iqos heets colombia javascript http performance minify

javascript - que - iqos philip morris



¿Reducir las solicitudes HTTP o no? (7)

Una pregunta teórica:
Todos sabemos acerca de los profesionales de minimizar y combinar archivos javascript para reducir las solicitudes HTTP para acelerar un sitio web. Pero cuando se usan las bibliotecas populares de javascript (jQuery por ejemplo), no es tan estúpido asumir que ya se han descargado en la computadora del cliente desde otra página.

Entonces, ¿qué se debe preferir? ¿Cómo lo manejan los grandes en la industria?

A) Combine y minimice cada script en uno masivo y sírvalo desde mi propio CDN.

B) Combine todos los scripts "autoescritos" en un archivo y utilice los CDN disponibles de las bibliotecas cuando sea posible.

¡Gracias!


Creo que depende de tu sitio:

  • Si su sitio consta principalmente de páginas del mismo tipo que necesitan los mismos scripts, iría por A)
  • Si tiene muchos scripts que difieren de cada subsitio de su sitio, iría por B) . Combine los scripts más utilizados en un solo script. Si tiene secuencias de comandos grandes que no se utilizan en todas las páginas, cree una secuencia de comandos por separado.

La mejor manera de saber realmente qué hacer es probar qué combinación de técnicas le ahorra más tráfico / conexiones.

PD: Personalmente no me gusta la idea de permitir que otras personas sirvan archivos para mi página web, porque ¿qué pasará si falla el CDN, pero su servidor sigue vivo? Si esto no es un problema para usted, intente servir todas las bibliotecas que use desde un CDN confiable.


Creo que el mejor enfoque es usar un archivo minified ''application.js'' (que contiene todos los javascript específicos de la aplicación) y luego usar un servicio como la API de Google AJAX Libraries (que se encuentra here ) para cargar jQuery, Prototype, etc.


Creo que se trata de un par de cosas:

  1. ¿Cuántas páginas usa el código en su sitio?
  2. La calidad del CDN.
  3. Cuanto codigo es

También hay una diferencia entre el uso de paquetes populares de Javascript, como jQuery, y el uso de un paquete personal, que solo tendrán los visitantes que hayan visitado su sitio.

La mejora del rendimiento puede ocurrir desde dos lugares: 1) caché del navegador y 2) caché dns, que incluso si el archivo no está almacenado localmente, el servidor dns tiene una ruta que minimiza el tiempo de solicitud, o incluso sirve temporalmente el archivo.

Yo recomendaría usar un CDN y alojar los archivos localmente. Dependiendo de sus recursos (hardware / ancho de banda), es posible que necesite usar un CDN de todos modos. Sería bueno usar programadores del lado del servidor para verificar el estado de la CDN y redireccionar la ruta cuando corresponda.

Además, recuerde que algunos usuarios optan por desactivar el caché de su navegador. Así que minimizar su JS es siempre un punto a favor. Debe separar su JS en dos archivos: 1) Necesario en la carga y 2) No es necesario en la carga. Básicamente, primero obtenga el código necesario para mejorar el tiempo de carga percibido. Luego, cargue todos los demás extras (por ejemplo, presentaciones de diapositivas, cambiadores de color, etc.).

Un último punto es hacer uso de los encabezados Expires, ya que nada de esto es importante si no lo optimiza. Eso es lo que realmente reducirá la velocidad para los visitantes que regresan con el caché habilitado. YSlow es un agradable complemento de Firefox que te ayudará a evaluar el rendimiento de tu carga.

Para responder a su pregunta: reduzca las solicitudes HTTP, pero haga su propia evaluación sobre el tamaño del archivo de JS.

(Siendo extremo) No desea un archivo JS de 10 MB, o su sitio tardará demasiado en cargarse. Tampoco desea 1000 archivos de 10KB, debido a la sobrecarga de HTTP. Nuevamente, use esto para ilustrar el punto en el que desea un equilibrio entre el tamaño y la cantidad de archivos, y como dije antes, agréguelos al rendimiento necesario contra el deseado.


No hay ninguna razón particular por la que obtener un script sea más rápido que dividirlo. Ocurre porque las descargas simultáneas del navegador son limitadas, pero no de una manera.

Creo que la idea debería ser manejar primero los scripts de UI síncronos y luego los scripts de "respuesta de actividad del usuario" (como validación, etc.).

Todo lo demás dado igual, la opción B se ve como la mejor.


Omar al Zabir ejecuta un sitio llamado pageflakes y tiene una serie de artículos sobre cómo mejorar el rendimiento. Uno de ellos, en particular, explica cómo comprimir y combinar todo tipo de cosas en el lado del servidor antes de enviarlo al cliente.

También puede utilizar sprites de imagen css para reducir las solicitudes HTTP. Ayudan mucho para imágenes de uso común.

* Ciertamente no tengo un sitio de producción enorme, pero estas cosas definitivamente ayudaron a ahorrar en costos de ancho de banda.


Particularmente a su pregunta acerca de cómo los individuos grandes de la industria manejan los scripts del lado del cliente, siempre podría mirar y ver. .com parece estar bien confiando en la versión de Google de jquery lib. Otros más decididamente no ...


  • "Combine y minimice cada script en uno masivo y sírvalo desde mi propio CDN "

    Si tienes un CDN, ¿de qué estamos hablando? :) Quieres decir servidor, ¿verdad?

  • "¿Cómo lo manejan los grandes en la industria?"

    Los grandes siempre usan sus propios servidores.

  • "... no es demasiado estúpido asumir que ya se han descargado en la computadora del cliente desde otra página".

    Desafortunadamente es. Hechos:

    • 40-60% de los usuarios tienen una experiencia de caché vacía
    • Los límites de caché de los navegadores son pequeños.
    • Se están utilizando diferentes versiones de bibliotecas , el caché solo ocurre si coinciden
    • recurso de un nuevo dominio crea una búsqueda de DNS , que es lenta
    • + necesitas gestionar dependencias