web-dev-qa-db-fra.com

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

Comment

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

différer simplement en référençant le script de HTML comme celui-ci

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

Y a-t-il des gains de performance?

213
Tom Squires

Le regroupement consiste à compresser plusieurs fichiers JavaScript ou de feuilles de style sans formatage (également qualifié de minifiés) dans un seul fichier pour enregistrer la bande passante et le nombre de demandes de chargement d'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 ça:

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

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

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

Si debug="true", il rendra à la place les balises de script individuelles pour chaque script source, sans aucune minification.

Pour les feuilles de style, vous devrez utiliser StyleBundle et @ Styles.Render ().

Au lieu de charger chaque script ou style avec une seule demande (avec des balises script ou link), tous les fichiers sont compressés dans un fichier JavaScript ou une feuille de style et chargés ensemble.

282
yan.kun

Vous pouvez aussi utiliser:

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

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

51
Termato