假设我想在遵循良好MVC原则的网站上显示一些值(以及ASP.NET MVC指南,但问题很可能与特定的MVC框架无关),例如:
A - type A items
的数量,
B - type B items
的数量,
T - all items
的数量(总计数),
A / T% - percentage of type A items
,
B / T% - percentage of type B items
,
现在我看到一些方法来填充视图所使用的ViewModel类:
all 6 values
放在ViewModel中,只需在必要时显示它们,无论客户端计算是什么,因为我们不接受任何客户端计算。
A
,B
,客户端计算总数(A + B)和百分比(A / T%和B / T%),因为我们希望通过网络尽可能少地在ViewModel中发送数据。
A
,B
,T
放入ViewModel,客户端计算百分比(A / T%和B / T%),因为我们认为这些值是其已经获得的数据的另一种直观表示。
ViewModel对象应包含哪些内容的最佳做法是什么?
答案 0 :(得分:1)
服务器端的好处:
客户方的好处:
正如您所看到的,我倾向于服务器端选项。如果您要进行 lot 计算,则可以始终缓存结果以减少所需的资源。即便如此,您还需要权衡缓存的大小与计算的CPU开销。
答案 1 :(得分:0)
我想你在谈论javascript heavy / SPA应用程序。
我个人会选择选项2:
但是有一些缺点: