1

我在 asp.net mvc 上有一个项目。

在某些情况下,当用户做某事时,应该更新html页面的一部分。不应重新加载整个页面。例如,用户点击产品类别,应加载包含新产品的 html 标记。

最佳实践是什么 - 使用局部视图和 Ajax.ActionLink 更新局部视图产品,或使用 $.ajax 接收有关产品的信息,然后在 javascript 中生成 html 标记?

或者也许最好的做法是别的?

4

1 回答 1

2

这取决于你的要求是什么。一般来说,正如您所说,有两种方法:

通过 Ajax 加载格式化的 HTML,或者加载 JSON,然后自己创建 HTML。每个都有其优点和缺点:

加载 HTML

优点:

  • 您可以在服务器端进行生成,从而保持客户端代码干净

缺点

  • 您通过网络发送的数据包的大小会更大
  • 该请求非常特定于该方法,并且很难重用

加载 JSON

优点:

  • 有效载荷尽可能小
  • 由于您没有将其绑定到一个实现,因此您可以将 JSON 用于其他目的(例如移动客户端)

缺点:

  • HTML 的生成必须在客户端完成。如果您手动或使用 jQuery 执行此操作,这可能会很麻烦,并且会增加客户端脚本。(一种解决方案是使用模板引擎,例如 mustache.js 或 handlebars.js)
  • 您的渲染逻辑在服务器和客户端上,这意味着并非所有内容都在一个地方

如您所见,两者各有利弊。这里没有真正的硬性规定,这取决于你的情况。

一般来说,我的建议是,如果您想要快速的东西,并且您认为在其他地方不需要相同的方法,请使用动态 HTML 加载。如果您认为您可能希望在其他页面或其他客户端上重用数据,请将 JSON 与模板引擎一起使用。

于 2013-05-12T08:42:37.830 回答