222

如何

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

与像这样从 html 引用脚本不同

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

有没有性能提升?

4

2 回答 2

295

捆绑就是将几个没有任何格式(也称为缩小)的 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")

@Scripts.Render("~/bundles/mybundle")与本机相比的另一个优势<script src="~/bundles/mybundle" />@Scripts.Render()它将尊重web.config调试设置:

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

如果debug="true"那样,它将改为为每个源脚本呈现单独的脚本标签,而不进行任何缩小。

对于样式表,您必须使用 StyleBundle 和 @Styles.Render()。

不是通过单个请求(使用脚本或链接标签)加载每个脚本或样式,而是将所有文件压缩为单个 JavaScript 或样式表文件并一起加载。

于 2012-08-30T08:22:02.727 回答
51

您还可以使用:

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

在需要使用 Charset、Type 等的场景中指定输出格式。

于 2013-10-07T19:12:19.113 回答