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 秒才能触发(因为加载和解析 2mb 的 javascript 需要很长时间)

我能做些什么来解决这个问题?

我注意到他们自己的网站http://mvc.devexpress.com有完全相同的问题:如果您查看源代码并查找“DXR.axd”然后下载该文件更大,为 2.6mb,而且他们也有Firefox 的加载速度非常慢

4

2 回答 2

2

我想他们创建一个动态 js 文件而不是使用静态 js 文件只是为了避免人们可能会复制他们的 js 文件。然而,市场上还有其他控件没有这个问题。如果您需要一个可以在那里找到的特定控件...那么您必须在这个问题中生存下来...否则请更改为另一个控件套件。但是,考虑到更多的控件是“开箱即用”并且只需编写一些代码即可使用,您的性能会更高......下降,因为每个控件都带有几个您实际上不需要的功能.

于 2012-10-29T12:47:22.250 回答
1

我不知道如何修复它,但我在当前项目中使用 DX 组件已经一年多了,所以只想告诉你一件事:它是第 3 方组件,所以你必须忍受它,没有其他方法。我项目中的组件也生成了大量的脚本,我个人认为你应该只用它来解决一个特定的问题(在我们的例子中是 pivotgrid),性能不佳是一种权衡。我自己在他们的组件中发现了几个错误,其中一些是低级实现,他们不能随便修复它,至少现在是这样。

于 2012-09-29T14:06:14.793 回答