2012-10-09 18 views
11

Entiendo cómo usar las nuevas características de empaquetamiento y minificación de asp.net. Son útiles durante el desarrollo.¿Cuál es el beneficio de la agrupación y minificación de ASP.NET en tiempo de ejecución?

Sin embargo, ¿hay alguna ventaja de usarlos en una implementación de producción? ¿Funcionaría mejor el sistema si acaba de colocar los archivos empaquetados/minificados en el servidor web? Parece que en general, menos código se ejecutaría si fueran solo archivos estáticos.

Nota: Entiendo el beneficio de tener js/css empaquetado y minificado. Solo estoy cuestionando el valor de usar un proceso de tiempo de ejecución activo para generar esos archivos en un sistema de producción en lugar de simplemente almacenarlos en el disco y hacer referencia a ellos como archivos estáticos.

Respuesta

15

El agrupamiento y la minificación es más útil en la producción que en el desarrollo. Puede mejorar significativamente el tiempo de descarga de su primer página.

  • Agrupación reduce el número de peticiones HTTP del servidor en particular mediante la combinación de varios archivos de archivos CSS y JavaScript en un archivo CSS y Javascript solo archivo.

  • La reducción reduce el tamaño de descarga de archivos CSS y javascript al eliminar el espacio en blanco, los comentarios y otros caracteres innecesarios.

Estas pequeñas ventajas son más pronunciadas en un entorno de producción que en el desarrollo. Entonces, es mejor ir con Bundling y Minification en producción.

Específico a su pregunta, no hay beneficio palpable en la agrupación/minificación durante el tiempo de ejecución. Esta característica está ahí solo para facilitar el trabajo del desarrollador. Por lo tanto, es mejor ir con activos empaquetados/minificados manualmente en producción si está seguro de lo que está haciendo.

Actualización: Según MSDN hay un beneficio real en la agrupación/minimización en tiempo de ejecución

paquetización y la minimización en ASP.NET 4.5 se realiza en tiempo de ejecución, por lo que el proceso puede identificar al usuario agente (por ejemplo, IE, Mozilla, etc.), y así mejorar la compresión al dirigirse al navegador del usuario (por ejemplo, eliminar cosas que son específicas de Mozilla cuando la solicitud proviene de IE) .`

El poder de la dinámica agrupación es que puede incluir estática Jav ascript, así como otros archivos en idiomas que compila en JavaScript.`

Por ejemplo, CoffeeScript es un lenguaje de programación que compila en JavaScript

+0

Si va a copiar y pegar una sección de texto de otro lugar, incluya un enlace a la fuente. – LittleBobbyTables

+1

Lo siento, no debo haber sido lo suficientemente claro. Editaré la pregunta para ser más claro. Entiendo el beneficio de usar archivos empaquetados/minificados. Solo estoy cuestionando si necesitamos usar el proceso de empaquetamiento y minificación en producción. ¿Por qué no solo usar los activos empaquetados/minificados? – gidmanma

+0

Amigos, esto no responde la pregunta. La pregunta era por qué generaría los archivos empaquetados/minificados en producción en lugar de desplegarlos como estáticos. – gidmanma

1

Minification- archivos más pequeños, menos kb en el alambre, la página más rápido carga.

Los navegadores de enlace limitan la conexión por host http. Esto significa que un usuario va a su página y tiene (digamos) 24 etiquetas de script y de enlace (css), su navegador las maneja 6 (la mayoría de las limitaciones del navegador) a la vez, lo que ralentiza la carga de la página. El agrupamiento hace que el navegador trate todos sus archivos en un único archivo, anulando esta limitación.

+0

Esto no responde la pregunta. La pregunta era por qué generaría los archivos empaquetados/minificados en producción en lugar de desplegarlos como estáticos. – gidmanma

+0

cierto. No lo vi. – motime

+0

En cuanto a la pregunta real, no veo el beneficio de la implementación de archivos estáticos. Con la estrategia de almacenamiento en caché adecuada, incluso si su aplicación necesita generar los archivos, los generará una vez. Por otro lado, si usa archivos estáticos, agregó otro (redundante, si se me permite decirlo) a su plan de despliegue. – motime

1

El agrupamiento y la minificación proporcionan 2 funciones básicas para mejorar el rendimiento de la carga de la página.

Paquetes - Agrupe todos los scripts/CSS proporcionados en un solo archivo para que solo el navegador necesite cargar un archivo en lugar de varios.
Nota-> En general, los navegadores solo pueden recibir 6 solicitudes simultáneas para obtener recursos del servidor. El navegador pone en cola solicitudes adicionales para su posterior procesamiento. Por lo tanto, si tenemos varios archivos, puede que tenga que esperar en la cola de solicitudes.

Modificación - El proceso de reducción genera un archivo minimizado mediante la eliminación de comentarios, espacios en blanco adicionales y cambia el nombre de los nombres de las variables. Así que esto reduce el tamaño del archivo y los resultados en una descarga más rápida.

+0

La pregunta no era sobre agrupación/minificación, sino sobre si el proceso de presupuestación/minificación en tiempo de ejecución en un servidor de producción tenía sentido en lugar de simplemente desplegar los archivos empaquetados/minificados como parte de su proceso de implementación. – gidmanma

0

Otro beneficio de la agrupación es que reduce los problemas de almacenamiento en caché. Cuando utilizamos la agrupación de su carga a la página con una clave, como a continuación.

<script src="/bundles/jquery?v=FVs3ACwOLIVInrAl5sdzR2jrCDmVOWFbZMY6g6Q0ulE1"></script> 

Cada vez que cambiamos nuestros scripts, se genera una clave diferente. Entonces el archivo se almacenará en caché si cambiamos algo. Pero cuando no usamos esto porque el archivo de script tiene el mismo nombre, a veces tenemos que borrar el caché para ver el cambio.

Cuestiones relacionadas