asp.net mvc 4 - net - Por que usar @ Scripts.Render(“~/bundles/jquery”)




mvc script (2)

Como é que

@Scripts.Render("~/bundles/jquery")

diferem de apenas referenciando o script de html como este

<script src="~/bundles/jquery.js" type="text/javascript"></script>

Há algum ganho de desempenho?

https://code.i-harness.com


Agrupar é tudo sobre a compressão de vários arquivos JavaScript ou folhas de estilo, sem qualquer formatação (também referida como minificada) em um único arquivo para salvar largura de banda e número de pedidos para carregar uma página.

Como exemplo, você pode criar seu próprio pacote:

bundles.Add(New ScriptBundle("~/bundles/mybundle").Include(
            "~/Resources/Core/Javascripts/jquery-1.7.1.min.js",
            "~/Resources/Core/Javascripts/jquery-ui-1.8.16.min.js",
            "~/Resources/Core/Javascripts/jquery.validate.min.js",
            "~/Resources/Core/Javascripts/jquery.validate.unobtrusive.min.js",
            "~/Resources/Core/Javascripts/jquery.unobtrusive-ajax.min.js",
            "~/Resources/Core/Javascripts/jquery-ui-timepicker-addon.js"))

E renderizá-lo assim:

@Scripts.Render("~/bundles/mybundle")

Mais uma vantagem de @Scripts.Render("~/bundles/mybundle") sobre o nativo <script src="~/bundles/mybundle" /> é que @Scripts.Render() respeitará a configuração de depuração web.config :

  <system.web>
    <compilation debug="true|false" />

Se debug="true" , em vez disso, ele processará tags de script individuais para cada script de origem, sem qualquer minificação.

Para folhas de estilo você terá que usar um StyleBundle e @ Styles.Render ().

Em vez de carregar cada script ou estilo com uma única solicitação (com tags de script ou link), todos os arquivos são compactados em um único arquivo JavaScript ou de folha de estilo e carregados juntos.


Você também pode usar:

@Scripts.RenderFormat("<script type=\"text/javascript\" src=\"{0}\"></script>", "~/bundles/mybundle")

Para especificar o formato de sua saída em um cenário em que você precisa usar Charset, Type etc.