【发布时间】:2014-01-14 22:26:42
【问题描述】:
我正在尝试确定构建我的应用程序的最佳方式,这样我就不会得到大量的 javascript。
我有一个带有视图的 ASP.NET MVC 应用程序,它使用 Michael Kennedy 的 Improve perceived performance of ASP.NET MVC websites with asynchronous partial views 方法加载 sllooooowwwww 部分视图。部分视图本身正在渲染一个DataTables 网格(它有自己的 CSS/JS 文件),以及网格本身的基于 Javascript 的配置(列格式、排序默认值、编辑器配置等)。
我的问题是什么是构建和维护所有这些的干净方法?我这里涉及到至少 3 种脚本(CSS 和/或 JS):
- 加载局部视图的主视图上的 JS。
- 数据表的 CSS/JS 文件
- 部分视图内的 JS 在
$(document).ready()上运行并配置该特定网格。
我可以控制(在主视图上)使用 Razor 的 @section 用于脚本/样式(上面的第 1 项)呈现 CSS/JS 的位置。但是,局部视图无法利用@section 功能,因此局部视图中的任何 CSS/JS 都会被注入到页面中间。这对我来说并不是很好,因为渲染的 HTML 看起来很糟糕,CSS/JS 显示在主视图的中间。我知道当 CSS/JS 都存储在外部文件中时,Cassette 之类的东西可以帮助解决第 2 项。
但是第 3 项我有 CSS/JS 的那部分视图是非常特定的呢?它可能像为视图附加单击事件处理程序或配置 JQuery 插件一样小,但这是否意味着我应该将其分离到另一个 JS 文件中?如果不需要,我不喜欢将这些东西分开,尤其是每个局部视图的网格配置。
在我的例子中,我有一个应用程序,其中包含多个视图,这些视图包含渲染网格的这些局部视图,并且没有一个网格包含相同的列集 - 因此每个网格的 JS 配置是不同的,它们在 $(document).ready() 上运行。
【问题讨论】:
标签: javascript asp.net-mvc partial-views asp.net-mvc-partialview cassette