2010-06-21 17 views
6

¿Qué es mejor?¿Qué es mejor en términos de rendimiento?

Tiene, por ejemplo, 20 archivos de javascript. 10 se comparten entre todas las páginas. Entonces estarían en la página maestra. Ahora que tal estos otros 10? Digamos que una página usa 4/10, otra usa 4/10 y otra utiliza 2/10.

¿Sería mejor combinarlos a todos en un solo archivo (dinámicamente por

o

b) tienen 10 combinados en la página maestra, entonces todas las otras páginas habría allí combinado.

Así que en algunos de mis páginas que estaría mirando a las 4 o 5 de Java-script solicita

  1. uno de maestro
  2. uno para jQuery de Google CDN
  3. uno para jquery ui de Google CDN
  4. uno para jquery validar desde MS CDN
  5. uno para cada cosa para esa página.

La mayoría de mis scripts ya usan jquery live porque utilizo las pestañas jquery ajax y tengo que cargar todos los scripts para cada una de las pestañas al mismo tiempo.

Si no cada vez que vaya a otra pestaña, descargará un nuevo conjunto de javascript para que comience a hacer eventos vinculantes, como hacer clic en X, donde X es la cantidad de veces que el usuario cargó la misma pestaña.

+0

Mantenga su archivo js relativamente pequeño, ¡no combine tantas cosas en un archivo grande! ¡utilice un lenguaje del lado del servidor para cambiarlos según su página actual! ¡minimiza todos los archivos js! –

+0

Probablemente debería modificar el título para decir solicitud HTTP o rendimiento de Javascript, ya que esto no es particularmente sobre javascript o jQuery. – Jordan

Respuesta

1

Dependiendo del idioma/servidor que esté utilizando, hay muchas herramientas que combinan dinámicamente los archivos javascript requeridos en una página en una sola solicitud solo para esa página. Según su referencia al Microsoft CDN, parece que está utilizando ASP.NET. Here's a combiner that might work for you que combinará las solicitudes de sus archivos JS locales en una única solicitud. Si fuera yo, lo que haría es la carga:

  1. jQuery & jQuery UI de Google
  2. jQuery Validar desde MS CDN
  3. sus archivos locales JS combinados (utilizando una herramienta como la anterior) en una descargar.

De esta forma obtienes 3 descargas paralelas.

+0

Bueno, yo uso algo llamado http combiner, pero mi lista es de pocas solicitudes a las que puedo acceder (lo que es muy poco). Podría combinar 2-3 (todos los CDN) pero creo que perdería las posibles versiones en caché, por eso lo dejé. – chobo2

+0

Recuerde que las solicitudes de diferentes dominios se ejecutan en paralelo entre sí. Por lo tanto, la solicitud de sitio de Google/MS/local también se ejecutará al mismo tiempo. Además, una vez que hayas descargado JQuery/JQuery UI/JQuery Validate una vez para un usuario en particular, lo más probable es que lo tengan en su caché. Entonces, la clave es hacer que su solicitud de recursos locales se reduzca a una solicitud lo más pequeña posible. – Keltex

+0

Echaré un vistazo a eso no estoy seguro de cómo difiere de la que estoy usando http://code.msdn.microsoft.com/HttpCombiner. Ahora, para una (las cosas de Google), ¿los estás peinando o simplemente usando los enlaces? Sí, sé que los diferentes dominios se ejecutan en paralelo, es por eso que estaba tratando de encontrar un tercer sitio para el jQuery U. De esa manera, haría que esos 3 se apagaran al mismo tiempo. – chobo2

0

Depende del tamaño de los archivos no compartidos. Si no son demasiado grandes, combínelos. Las solicitudes suelen tardar más tiempo que la transferencia. Por supuesto, si realmente te importa mucho, debes hacer tus propios puntos de referencia.

Pero si tiene dudas, combine.

Editar: Acabo de leer su pregunta nuevamente. La opción B es mejor, como para almacenar en caché la versión combinada principal.

+0

¿Qué tan grande es demasiado grande? – chobo2

+0

La regla de oro para mí es de aproximadamente 75 kb por archivo. Más que eso, sería mejor dividirse en al menos 2 archivos para descargas HTTP paralelas. – Jordan

Cuestiones relacionadas