我正在尝试确定构建我的应用程序的最佳方式,这样我就不会到处都是大量的 javascript。
我有一个 ASP.NET MVC 应用程序,它有一个 View ,它使用迈克尔肯尼迪对 Improve perceived performance of ASP.NET MVC websites with asynchronous partial views 的方法加载了一个 sllooooowwwww 局部 View 。 .局部 View 本身正在呈现 DataTables网格(它有自己的 CSS/JS 文件),以及网格本身的基于 Javascript 的配置(列格式、排序默认值、编辑器配置等)。
我的问题是什么是构建和维护所有这些的简洁方法?我这里涉及至少 3 种脚本(CSS 和/或 JS):
- 主视图上加载局部 View 的 JS。
- 数据表的 CSS/JS 文件
- 在
$(document).ready()
上运行并配置特定网格的局部 View 内的 JS。
我可以控制(在主视图上)使用 Razor 的脚本/样式的 @section
渲染 CSS/JS(上面的项目 #1)。但是,局部 View 无法利用 @section
功能,因此局部 View 中的任何 CSS/JS 都会被注入(inject)到页面中间。这对我来说并不是很好,因为渲染的 HTML 看起来很糟糕,CSS/JS 出现在主视图的中间。我知道类似 Cassette 的事情当 CSS/JS 全部存储在外部文件中时,可以帮助解决第 2 项。
但是第 3 项我有 CSS/JS,它非常特定于那个局部 View 呢?它可能像为 View 附加点击事件处理程序或配置 JQuery 插件一样小,但这是否意味着我应该将其分离到另一个 JS 文件中?如果不需要,我不喜欢将这些东西分开,尤其是每个局部 View 的网格配置。
在我的例子中,我有一个包含多个 View 的应用程序,这些 View 包含这些渲染网格的局部 View ,并且没有一个网格包含相同的列集 - 所以每个网格的 JS 配置是不同的,它在 $ 上运行(文档).ready()
.
最佳答案
出于您提到的原因,我会考虑完全不使用局部 View 。不要使用 ajax 加载部分 View ,而是从 Controller 加载 json 数据。使用像 handlebars.js 这样的 JavaScript 模板在客户端获得 Razor 效果。 干净多了。较小的 http 负载。
关于javascript - 局部 View 和 CSS/Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21125342/