2

DevExpress MVC コントロールの使用を開始しました。これには、Site.Master に次のコードを追加する必要があります。

<% Html.DevExpress().RenderScripts(Page,
       new Script { ExtensionSuite = ExtensionSuite.GridView },
       new Script { ExtensionSuite = ExtensionSuite.HtmlEditor },
       new Script { ExtensionSuite = ExtensionSuite.Editors },
       new Script { ExtensionSuite = ExtensionSuite.NavigationAndLayout },
       new Script { ExtensionSuite = ExtensionSuite.Chart },
       new Script { ExtensionSuite = ExtensionSuite.Report }
 ); %>

しかし、これは DXR.axd と呼ばれるハンドラを介して 2MB の巨大な JavaScript ファイルをレンダリングします。Firefox を使用している場合、この JavaScript は大きすぎて、ページのオンロード時間が ~500 ミリ秒から ~5,000 ミリ秒に増加します (前後の時間を測定しました)。

Chrome を使用すると、約 750 ミリ秒で読み込まれます

これは重大なパフォーマンス ヒットであり、ページのレンダリング中に非常に目立つ一時停止が発生します。Firefox は、DOMContentLoaded イベントの起動に 5 秒かかると報告しています (2 MB の JavaScript をロードして解析するのに非常に長い時間がかかるため)。

この問題を解決するにはどうすればよいですか?

彼ら自身のサイトhttp://mvc.devexpress.comにもまったく同じ問題があることに注意してください。ソースを表示して「DXR.axd」を探し、そのファイルをダウンロードすると、2.6mbでさらに大きくなります。 Firefox でのオンロードが非常に遅い

4

2 に答える 2

2

人々がjsファイルをコピーするのを避けるために、静的jsファイルを使用する代わりに動的jsファイルを作成すると思います。ただし、この問題のない他のコントロールが市場に出回っています。そこにある特定のコントロールが必要な場合は、この問題に対処する必要があります...それ以外の場合は、別のコントロールスイートに変更してください。ただし、より多くのコントロールが「すぐに使える」ものであり、いくつかのコードを記述するだけですぐに使用できることを考慮してください。各コントロールには実際には必要のないいくつかの機能が含まれているため、パフォーマンスが低下します... .

于 2012-10-29T12:47:22.250 に答える
1

修正方法はわかりませんが、現在のプロジェクトで 1 年以上 DX コンポーネントを使用してきたので、1 つだけお伝えしたいことがあります。仕方。私のプロジェクトのコンポーネントも大量のスクリプトを生成します。個人的には、特定の問題 (私たちの場合はピボットグリッド) を解決するためにのみ使用する必要があり、パフォーマンスの低下はトレードオフであると考えています。私自身、彼らのコンポーネントにいくつかのバグを発見しました。そのうちのいくつかは低レベルの実装であり、少なくとも今のところ、意に介さずに修正することはできません。

于 2012-09-29T14:06:14.793 に答える