Pourquoi utiliser des @Scripts.Render("~/bundles/jquery")

Comment

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

diffère de simplement faire référence au script de html comme ceci

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

y a-t-il des gains de rendement?

210
demandé sur Hakam Fostok 2012-08-30 12:16:54

2 réponses

Bundling est tout au sujet de la compression de plusieurs fichiers JavaScript ou des feuilles de style sans aucun formatage (aussi appelé minified) dans un seul fichier pour enregistrer bandwith et le nombre de demandes pour charger une page.

comme exemple vous pouvez créer votre propre paquet:

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"))

et le rendre comme ceci:

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

un autre avantage de @Scripts.Render("~/bundles/mybundle") sur le <script src="~/bundles/mybundle" /> natif est que @Scripts.Render() respectera le paramètre de débogage web.config :

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

Si debug="true" alors qu'il va plutôt fournir des balises de script pour chaque script d'origine, sans aucune minification.

pour les feuilles de style, vous devrez utiliser un StyleBundle et @Styles.Rendre.)(

au lieu de charger chaque script ou style avec une seule requête (avec des balises script ou link), tous les fichiers sont compressés dans un seul fichier JavaScript ou stylesheet et chargés ainsi.

270
répondu yan.kun 2018-09-07 14:47:49

vous pouvez également utiliser:

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

pour spécifier le format de votre sortie dans un scénario où vous devez utiliser Charset, Type, etc.

47
répondu Termato 2013-10-07 19:12:19