MVC 4 – 在哪里加载JS脚本
我是MVC的新手,我注意到加载我编写并试图加载的js文件存在很多不一致之处。
首先,我的网站设置如下:
_Layout.cshtml (main page) Index.cshtml _MainMenu.cshtml (partial view)
我将我的MainMenu渲染到Layout的主体中。 所有jquery脚本都加载在布局的页脚中(我读到了一个更喜欢的地方)。
当我渲染视图时,我在视图顶部加载与该内容相关的任何特定脚本。
加载javascript文件的最佳方式是什么(无论是来自谷歌的cdn文件还是我项目中包含的文件)? 我应该将所有这些加载到我的布局页面的标题中,还是只在我使用它们时加载它们? 有人可以在mvc应用程序中解释最佳实践和管理/加载/使用javascript文件。
谢谢您的意见!
如果您使用的是Modernizr ,请将其加载到头部。 将其他脚本(包括jquery)加载到body
的底部(除非另有说明 – 某些脚本需要为head
)。 理想情况下,您的_Layout.cshtml看起来像:
@Scripts.Render("~/bundles/modernizr") @Scripts.Render("~/bundles/jquery") @RenderSection("scripts", required: false)
因此,这将加载您的jQuery包,然后根据需要在每个页面上加载自定义脚本,如(在其他一些.cshtml
文件中):
@section Scripts { @Scripts.Render("~/bundles/myNiceBundle") }
所以它会将你的自定义脚本放在jQuery下。
将脚本放在页面底部的强制性原因 :
脚本引起的问题是它们阻止了并行下载。 HTTP / 1.1规范建议浏览器每个主机名并行下载不超过两个组件。 如果您从多个主机名提供图像,则可以并行执行两次以上的下载。 但是,在下载脚本时,即使在不同的主机名上,浏览器也不会启动任何其他下载。
- asp.net mvc:从控制器返回刷新选择列表的正确方法是什么?
- Javascript相当于.NET的DateTime.Parse
- 将PartialView渲染到MVC中的布局页面的最佳方法是什么?
- 无法让Jquery DateTimePicker显示在mvc4中
- jQuery $(document).ready和ASP.NET MVC Partial
- 在文本框上手动设置不显眼的validation错误
- 如何使用jqueryvalidation插件validationmvc中的特定隐藏文件
- 如何将jquery.post中的数据发送到使用ViewModel作为参数的mvc控制器?
- 如何使用jQuery Datatables和ASP MVC进行批量行更新