-1

私のプロジェクトは、C# で MS の MVC4 プラットフォーム上に構築されています。

フロントエンドのテーブルから行を表すビュー モデルをフィードしています。この行を無効にする可能性のある IF 句を追加する必要があります。すべての列です。

ビューモデルを埋めるために、特定の数のオブジェクトを反復処理する必要があり、それらを正しく配置するためにフロントエンドでもう一度実行する必要があります。

パフォーマンスに関して、どちらが速いか知りたいです:

1 - ビュー モデルに多数の「-」を入力します。反復されるオブジェクトごとに 1 つです。もう一度反復して、すべての列に同じ情報を入力します。

2 - ViewModel にブール値フラグを配置して、この行が無効であることを示し、その結果、バックエンドでの反復をスキップします。フロントエンドに到達すると、フラグを要求し、それが true の場合は、それらを埋める列を繰り返します。

2 番目のオプションの方がスマートであることは少し明白に思えるかもしれませんが、コードはビューよりもバックエンドの方がはるかに高速に実行されることを知っているので、この場合は混乱します。

PS私はそれを試すことが最善の方法であることを知っていますが、テストする前にやるべきことがいくつかあります.誰かが同様の状況を経験した場合に備えて、結果を聞いてうれしいです.

PS2 - これが「厳密に意見に基づいて」回答された質問の場合であることに疑いの余地はありません。

前もって感謝します

4

1 に答える 1

2

最初のテストでは、ビュー (.cshtml) 内にいくつかのコードがあり、その if 句だけでなく、他のいくつかの計算で、レンダリングに 17 分かかりました。

大量のデータではないことを考えると、パフォーマンスは非常に残念でした。そこで、バックエンドの関数全体を書き直して、ビューが想定どおりに機能し、100% 事前に計算された情報を表示するようにすることにしました。

バックエンドでのすべての処理により、同じアクションのレンダリングに約 1 分かかりました。

学んだ教訓は、パフォーマンスがひどいため、ビューで最大のコーディングを回避しないか、少なくとも避けてください。

于 2013-09-17T16:48:48.023 に答える