2011-08-23 85 views
0

我正在开发一个Web应用程序,它将以网格形式显示数据。我需要能够快速加载数千行。我还需要能够按多个列对数据进行排序,并按搜索字符串过滤列。我目前使用ASP .NET MVC和Infragistics jQuery iGrid优化的Web数据网格 - ASP .NET与ASP .NET MVC和jQuery

目前我正在加载1000条记录,并且已经开始出现一些性能问题。

我最初使用分页来使初始化加载更快,但这意味着我需要做我的排序/过滤服务器端,否则它只会对该页上的记录进行排序/过滤,而不是整个数据源上的记录。

或者我可以将整个数据源加载到网格(1000个记录需要约20秒来绑定),然后做所有的排序/过滤客户端,这是非常瞬间的。

我的同事认为我们应该取消jQuery控件并改用ASP .NET controls。他们更成熟,功能更多。

值得接受我的同事的建议吗? ASP .NET控件会比jQuery控件更快吗?我应该转向一个直接的ASP .NET项目吗?还是值得尝试将ASP .NET控件合并到一个MVC项目中?

回答

1

我认为这取决于你的jQuery网格控件(如果它使用JSON进行分页,我认为没有性能问题)。 我在两个应用程序中使用了两个不同的网格: - 带有ASP.NET的Telerik RadGrid,成熟,有很多选项,并且具有良好的服务器端代码,性能良好 - 我自己的使用JSON和ASP.NET的jQuery网格实现在服务器端的MVC。更少的选择,但更好的表现。 没有分页就没有好的表现,这就是关键。

jQuery UI团队将在几周内提供一个新的网格组件。所以对你来说可能会很酷。

+0

这两个网格提供分页,很容易实现。是的,jQuery网格控件使用JSON。所以,如果我理解正确,你说的性能明智的jQuery网格应该比ASP.net网格更好? – link664

+0

我认为是的,由经验。实际上,它取决于ASP.NET组件的“复杂性”。在服务器端和视图状态处理中你可能会有很多处理方法。它部分隐藏在Ajax支持中。在ASP.NET MVC上,JSON调用隐藏了复杂性。 这只是我的经验,所以也许不是这样! –

0

我想你的问题是有关这个帖子:

jQuery Grid Binding in ASP .NET MVC is so slow

基本上igGrid(Infragistics的jQuery的网格)的渲染和数据绑定具有非常小的足迹和对性能的影响。而且,如果启用行虚拟化(也支持列虚拟化),则在渲染速度方面,如果您有100条记录或10万条记录,则无关紧要。

如果仍然遇到这些都与渲染的问题,你也可以看看下面的白皮书:

http://help.infragistics.com/Help/NetAdvantage/jQuery/2011.1/CLR4.0/html/igGrid_Performance_Guide.html

让我知道,如果这有助于。并感谢您的反馈。 天使