我正在开发一个以网格形式显示数据的Web应用程序。我需要能够快速加载数千行。我还需要能够按多列对数据进行排序,并按搜索字符串过滤列。我目前正在使用ASP .NET MVC和Infragistics jQuery iGrid。
目前我正在加载1000条记录,并且已经开始遇到一些性能问题。
我最初使用分页来使初始负载更快,但这意味着我需要进行排序/过滤服务器端,否则它只会对该页面上的记录进行排序/过滤,而不是整个数据源。
或者我可以将整个数据源加载到网格中(其中1000条记录需要约20秒才能绑定)然后进行所有排序/过滤客户端,这几乎是瞬间的。
我的同事认为我们应该废弃jQuery控件并使用ASP .NET controls代替。它们更成熟,功能更强大。
值得接受我同事的建议吗? ASP .NET控件是否比jQuery控件更快?我应该转向直接的ASP .NET项目还是值得尝试将ASP .NET控件合并到MVC项目中?
答案 0 :(得分:2)
这不是一个成熟的项目,但它确实值得一看,所以查看Telerik Kendo UI和网格小部件,它基于jQuery。
答案 1 :(得分:1)
我认为这取决于你的jQuery网格控件(如果它使用JSON进行分页,我认为没有性能问题)。 我在两个应用程序上使用两个不同的网格: - 带有ASP.NET的Telerik RadGrid,成熟,有很多选项,并且具有良好的服务器端代码,具有良好的性能 - 我自己的jquery网格实现,在服务器端使用JSON和ASP.NET MVC。更少的选择,但更好的性能。 如果没有分页,你就无法获得良好的性能,这就是重点。
我想,jQuery UI团队将在几周内提供一个新的网格组件。所以对你来说可能很酷。
答案 2 :(得分:0)
我猜你的问题与这篇文章有关:
jQuery Grid Binding in ASP .NET MVC is so slow
基本上,igGrid(Infragistics jQuery网格)的渲染和数据绑定占用空间非常小,并且对性能有影响。此外,如果您启用行虚拟化(也支持列虚拟化),那么在渲染速度方面,如果您有100条记录或10万条,则无关紧要。
如果您仍然遇到与渲染相关的问题,您还可以查看以下白皮书:
如果这有帮助,请告诉我。并感谢您的反馈。 天使