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规范建议浏览器每个主机名并行下载不超过两个组件。 如果您从多个主机名提供图像,则可以并行执行两次以上的下载。 但是,在下载脚本时,即使在不同的主机名上,浏览器也不会启动任何其他下载。