Outro recurso interessante sobre o Bundling e Minification é a capacidade de explorar recursos do browser do cliente para gerar uma cache local dos seus arquivos de estilo e javascript. Ou seja, quando o cliente acessar nosso site pela primeira vez vamos enviar todo conteúdo necessário para apresentação do site, com esse conteúdo o browser vai armazenar localmente na máquina do cliente a versão dos nossos estilos e scripts para que a próxima vez que o site receber essa visita o desempenho vai ser superior, pois não vai ser necessário baixar novamente esse conteúdo.
O Framework 4.5 do ASP.NET e inclusive o MVC 4 possuem esse recurso, para utilizarmos precisamos colocar:
<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Content/css")" rel="stylesheet" type="text/css" />
<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Content/themes/base/css")" rel="stylesheet" type="text/css" />
<script src="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Scripts/js")"></script>
O próprio gerente de produto do ASP.NET comentou que é um pouco grande esse helper: System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl
. No entanto ele é o responsável para que a cache seja criada no browser.
Olhando o código fonte da página vamos observar uma string mágica que é um hash dos arquivos que estão sendo feito o Bundling e Minification, esse hash vai ser gerado automaticamente a partir dos arquivos, ou seja, caso alguma modificação seja realizada em qualquer arquivo de estilho ou de script o hash a ser gerado vai ser outro e automaticamente o browser do cliente ao verificar esse hash vai perceber a modificação e então vai baixar os novos arquivos limpando a cache anterior.
Podemos realizar esses mesmos recursos via código para uma maior customização. Veja mais no blog do Scott Guthrie
Veja mais sobre o assunto em:
Referências:
http://weblogs.asp.net/scottgu/archive/2012/02/19/asp-net-mvc-4-beta.aspx
Não deixe de ver esse vídeo:
http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2364/player?w=956&h=484
Abraço e até a próxima.
Lino