将脚本放置在layout视图或每个视图中更好

what is better to place the scripts on the _layout view or in each view

本文关键字:视图 更好 layout 脚本      更新时间:2023-09-26

我正在开发一个asp.net MVC web应用程序,目前我正在管理以下脚本:-1.我在_layout视图上放置了以下脚本,因为它们被大多数视图(当然不是所有视图)使用:-

<script src="@Url.Content("~/Scripts/jquery-1.6.2.min.js")" type="text/javascript"></script>
      <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
      <script src="@Url.Content("~/Scripts/jquery-ui-1.8.14.min.js")" type="text/javascript"></script>
  1. 然后,如果需要的话,我会将其他脚本添加到相关视图中

所以我的问题是,由于我不打算在_layout视图上加载所有脚本,所以这种方法是否会获得更好的性能

是的,这是最佳实践。但请注意,如果您在大多数视图中使用某个script文件,那么我也会将其放在_Layout.cshtml中。仅仅因为它没有在100%的视图中使用,并不意味着它不实用,建议将其放在布局视图中。

如果有几个或两个使用的是特定的脚本,那么您是对的:只需将其放在该视图中即可。但请记住,这样做是在重复自己,如果需要更新脚本文件名或路径,可能会成为一场维护噩梦。

这是一个灰色地带,但我愿意说你做的是正确的。

将所有视图要使用的脚本放在_layout.cshtml文件中。

然后将特定的脚本(如验证脚本)放置在相应的视图中,甚至更好地放置在编辑器模板中。

更好的是,使用类似Cassette的东西将所有脚本组合到一个.js文件中,这将使您的网站更快,因为用户必须缓存一个文件并提供一个文件。然后,您将从_layout.cshtml.提供这个单独的.js文件

盒式磁带:http://getcassette.net/

SquishIt:http://www.codethinked.com/squishit-the-friendly-aspnet-javascript-and-css-squisher


我有一篇关于将SquishIt与MVC3一起使用的小文章,尽管我更喜欢盒式磁带。两者都提供类似的功能。

http://sergiotapia.com/2012/01/using-squishit-in-an-asp-net-mvc3-web-application/