Зачем использовать @Scripts.Render( "~/bundles/jquery" )

Как

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

отличаются от ссылки на script на html, как это показано

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

Есть ли выигрыш в производительности?

Ответ 1

Связывание - это сжатие нескольких файлов JavaScript или таблиц стилей без какого-либо форматирования (также называемого сокращенным) в один файл для сохранения полосы пропускания и количества запросов на загрузку страницы.

В качестве примера вы можете создать свой собственный пакет:

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

И сделайте так:

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

Для таблиц стилей вам нужно будет использовать StyleBundle и @Styles.Render().

Вместо того, чтобы загружать каждый script или стиль с помощью одного запроса (с помощью script или тегов ссылок), все файлы сжимаются в один файл JavaScript или таблицы стилей и загружаются вместе.

Ответ 2

Вы также можете использовать:

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

Чтобы указать формат вашего вывода в сценарии, где вам нужно использовать Charset, Type и т.д.