2011-08-23 144 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

讓我知道,如果這有助於。並感謝您的反饋。 天使