script net mvc minification example bundling asp and asp.net-mvc optimization asp.net-mvc-5 bundle webgrease

asp.net mvc - net - ¿Por qué Scripts.Render invoca a JsMinify.Process?



bundles asp net webforms (1)

Hice un perfil de mi aplicación ASP.NET MVC y vi extrañas llamadas a funciones.

Puedes verlo en la imagen

Siempre cuando mvc renderiza el diseño invocamos system.web.optimization.scripts.render que invoca JsMinify.Process y Minifier.MinifyJavaScript , pero pensé en qué minificación debería ser una vez en la aplicación de inicio.

¿Estoy en lo cierto?

Tal vez debo establecer algunas configuraciones para la optimización que?

Condiciones:

  • localhost
  • lanzamiento
  • BundleTable.EnableOptimizations = true;

Gran pregunta!

Intuitivamente, tiene razón, la minificación de los activos debe realizarse en el inicio de la aplicación. Usted supone que los activos se entregan de manera idéntica a todos los navegadores. Pero Microsoft cree que gran parte de JS y CSS son específicos del navegador.

Si verifica la referencia del sitio asp.net en la agrupación y minificación de ASP.NET 4.5 , especifican específicamente:

El agrupamiento y la minificación en ASP.NET 4.5 se realiza en tiempo de ejecución, de modo que el proceso puede identificar al agente de usuario (por ejemplo IE, Mozilla, etc.) y así mejorar la compresión al dirigirse al navegador del usuario (por ejemplo, eliminar cosas que es específico de Mozilla cuando la solicitud proviene de IE).

:

¿Qué pasa con el almacenamiento en caché?

El empaquetamiento no es tan obtuso como un perfil lo haría pensar. Si busca la referencia MVC 4 Bundling and Minification , señalan:

Almacenamiento en caché del paquete

Los paquetes configuran el encabezado HTTP Expires un año desde que se creó el paquete. Si navega a una página vista previamente, Fiddler muestra que IE no realiza una solicitud condicional para el paquete, es decir, no hay solicitudes HTTP GET de IE para los paquetes y ninguna respuesta HTTP 304 del servidor.

Esta es mucha más información de la que necesita, pero el mensaje es que, JSMinify tiene un cheque para los activos minificados en caché relevantes.

Cuando se toma en cuenta además que ya usamos una versión reducida de nuestros activos (por ejemplo, jquery.min.js, jquery-ui.min.js), se puede apreciar que la minificación .Net es un proceso suplementario.

¿Por qué tiene que ocurrir la Minificación de todos los tipos?