后端与视图(剃刀)上的 IF 语句的性能

本文关键字:IF 语句 性能 上的 视图 剃刀 后端 | 更新日期: 2023-09-27 18:30:22

我的项目是在 MS 的 MVC4 平台上构建的 C# 平台。

我正在输入一个视图模型,该模型表示前端表中的一行,并且我必须添加一个可能使该行无效的 IF 子句,表中的表示形式将是在其所有列中填充"-"的行。

为了填充视图模型,我必须遍历一定数量的对象,并且必须在前端再次执行此操作才能正确放置它们。

我想知道,就性能而言,哪个会更快:

1 - 用大量"-"填充视图模型,每个迭代的对象一个,然后再次迭代以使用相同的信息填充所有列。

2 - 在 ViewModel 上放置一个布尔标志,指示此行无效,因此跳过后端的迭代。当我到达前端时,我会要求标志,如果这是真的,我会通过填充它们的列进行迭代。

我知道第二个选项更聪明似乎有点明显,但我知道代码在后端的运行速度比视图中快得多,所以在这种情况下我很困惑。

附言我知道最好的方法是尝试一下,但是在测试之前我还有一些任务要做,万一有人遇到类似的情况,我很高兴听到结果。

附言2 - 我毫不怀疑这是一个答案"严格基于意见"的问题

提前致谢

后端与视图(剃刀)上的 IF 语句的性能

在第一次测试中,使用视图 (.cshtml) 中的一些代码,渲染需要 17 分钟,不仅仅是 if 子句,还有其他一些计算。

考虑到数据量不大,性能令人非常失望。 所以我决定在后端重写整个函数,这样视图就可以按照它的设想去做,只显示 100% 预先计算的信息。

在后端进行所有处理时,相同的操作大约需要 1 分钟才能呈现。

吸取的教训,不要,或者至少避免在视图上进行最大编码,因为它的性能很糟糕。