【问题标题】:jQuery Templates vs Partial Views in ASP.NET MVCASP.NET MVC 中的 jQuery 模板与部分视图
【发布时间】:2011-06-26 08:39:15
【问题描述】:

我正在研究 jQuery 模板。它看起来非常有趣——语法简单、易于使用、非常干净。

但是,我真的不明白为什么使用 jQuery 模板比简单地通过 AJAX 获取部分视图更好。看起来局部视图会更容易维护,并且有助于避免代码重复。

我想使用 jQuery 模板。但是什么时候会比部分视图更好?

【问题讨论】:

  • “我想使用 jQuery 模板” - 为什么?
  • @bzlm:都是炒作 ;-)
  • @Adrian 是的,也许。 :) @Jaco关于您问题中的“简单语法”,我不敢苟同。所有 {{}} 的东西只是要学习的另一种“视图语法”。如果你已经在使用 ASP.NET MVC,jQuery 模板只会拖慢你的速度。

标签: jquery asp.net-mvc jquery-templates


【解决方案1】:

我要补充一点,jqt 的好处之一是您可以非常轻松地将前端开发交给第三方(专门从事此类工作),他们只需要知道json。 (可能还有一些返回服务器的“接口”)

这样,您的“后端”开发人员可以专注于手头的任务,而“前端”团队可以开发 jqt。 jqt 的另一个优点是它们与 .net 环境完全隔离,因此可以(如果不太可能)为一部分操作更改后端技术(j2ee、php 等)而无需前端关心超出休息网址。

这是一个有趣的观察“空间”,我才刚刚开始涉足。然而,在围栏的两边,事情只会变得更好,正如我在几周前向 dave (ward) 提到的那样,也许一些 razor 引擎端点将提供一种在未来版本中直接与 jqt 集成的方法——似乎有点不可避免的。

【讨论】:

【解决方案2】:

我同意这些确实重叠。实现同一个软件有多种不同的方法,您对使用什么的决定很大程度上取决于您的个人偏好和软件的上下文。

局部视图优势:

  • 类型安全(如果使用强类型视图模型)
  • 允许静态语法和类型检查。
  • Visual Studio 中的完整代码完成/语法高亮支持

jQuery 模板的优势:

  • 允许在执行回发之前更新页面,或者根本不向服务器端进行任何回发。这在创建大量 ajaxed 接口时非常方便,可能还具有 html5 驱动的离线功能。
  • 您可以从服务器检索 JSON 格式的数据并将其呈现为 HTML。 JSON 比 HTML 格式短得多,因此当使用慢速 Internet 连接时,对于长数据条目列表的页面加载时间会有所不同。

所以本质上,局部视图更稳定,而 jquery 模板(对于 ajax 网站)是性能更高的选择。因此,我对需要快速开发的不经常使用的网页使用部分视图,并为性能非常重要的大量 ajax 网页使用 jQuery 模板。

【讨论】:

  • 我希望我可以为 jQuery 模板提出一个更有说服力的论据,但我想这是我们能做的最好的了。谢谢阿德里安
  • @Jaco Pretorius:别误会——jQuery 模板确实是一个很棒的插件,我经常使用它。只是我更喜欢服务器端技术,因为它易于使用和稳定,除非我有充分的理由采用更重客户端的解决方案。我想有些人实际上使用 Javascript 比使用 Razor / C# 更舒服,对他们来说 jQuery 模板是要走的路。 IMO 也不是一个糟糕的选择。
  • 另外:jQuery 模板与 KnockoutJS 配合得很好。如果你还没有尝试过,它真的很整洁。
  • @Anders:确实很简洁,但正如我提到的,我真的更喜欢以服务器为中心的方法。根据我的经验,它没有那么光滑,但更强大。
  • @Adrian 在健壮性方面,您对 jQuery 模板有过负面体验吗?听听会很有趣。
【解决方案3】:

一个示例是,您最初希望显示多行,然后在页面查看过程中添加/删除单行(考虑显示然后编辑发票文档)。拥有能够一次呈现单行的精细控制使您能够显着提高应用的响应能力。

【讨论】:

  • 但您也可以通过加载仅显示单行的局部视图并将其插入 DOM 来执行相同操作。 $.load(...) 正是这样做的。
  • 不完全是。在许多应用程序中,您可能希望通过在客户端立即添加模板行来为用户提供实时编辑体验。在这种情况下,没有充分的理由通过客户端-服务器往返延迟来阻止用户的工作流程,因为添加的内容可以保存在后台或稍后作为组保存。当您完全依赖服务器来生成标记时,您对应用程序可以实现的交互级别施加了不必要的限制。
  • 我明白你的意思,这确实是一个最佳的实现性能,但这样做的代价是你必须处理和同步服务器端和客户端数据存储.这意味着更复杂的实现,最终意味着更多的 javascript 很容易被破坏,因此比服务器端代码更难重构。如果您正在编写具有离线功能的网络应用程序,这是唯一的方法,但对于常规网站,我宁愿使用更简单的解决方案。
  • 我多年来一直在使用客户端模板,但从未遇到过任何这种情况。恰恰相反,在 UI 代码中使用 JavaScript 极大地简化了我工作过的大多数内部应用程序,其中可以强制要求 JavaScript 支持。您不仅可以为用户提供更好的性能和更高级别的交互性,还可以提高开发人员的工作效率。根据我的经验,这些收益大大超过了重构生产力方面的任何损失。
猜你喜欢
  • 2012-01-03
  • 1970-01-01
  • 2011-03-31
  • 1970-01-01
  • 1970-01-01
  • 2011-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多