Asp.net mvc 4 为什么要使用@Scripts.Render(“~/bundles/jquery”)

Asp.net mvc 4 为什么要使用@Scripts.Render(“~/bundles/jquery”),asp.net-mvc-4,asp.net-optimization,Asp.net Mvc 4,Asp.net Optimization,怎么做 @Scripts.Render("~/bundles/jquery") 不同于像这样从html中引用脚本 <script src="~/bundles/jquery.js" type="text/javascript"></script> 是否有任何性能提升?捆绑就是将几个JavaScript或样式表文件压缩到一个文件中,而不进行任何格式化(也称为缩小),以保存bandwith和加载页面的请求数 例如,您可以创建自己的捆绑包: bundles.Add(Ne

怎么做

@Scripts.Render("~/bundles/jquery")
不同于像这样从html中引用脚本

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


是否有任何性能提升?

捆绑就是将几个JavaScript或样式表文件压缩到一个文件中,而不进行任何格式化(也称为缩小),以保存bandwith和加载页面的请求数

例如,您可以创建自己的捆绑包:

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”)
相对于本机
的另一个优点是
@Scripts.Render()
将遵守
web.config
调试设置:

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

如果
debug=“true”
则它将为每个源脚本呈现单独的脚本标记,而不进行任何缩小

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

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

您还可以使用:

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

在需要使用字符集、类型等的场景中指定输出格式。

只是想知道:是否有文件存储在该捆绑包的某个位置,或者该文件是否仅存在于内存中?还可以将其设置为自动使用CDN,并在CDN不可用时回退到本地脚本。这是非常巧妙的。这样做还有一个额外的好处。在调试时,Scripts.Render将输出未绑定的每个文件,这使得本地开发的难度大大降低,但在实时环境中,这将输出绑定/缩小的结果,这可以导致如上所述的性能提高,但不会更改任何代码,捆绑在“BealCon Fig.cs”(APPYSTART文件夹)中编写。根据其他回答的注释:考虑Acyc JavaScript属性:<代码>脚本。RenderFormat(@),“~/Buffs/jQuery”< /Cord>如何添加type =“text /CSS”-也非常有用,用于加载ReaveJS模块…或添加<代码> Aysic < /Calp>属性。<代码> @脚本。RenderFormat(“””,“~/bundles/mybundle”)…或添加crossorigin=“anonymous”属性