我有一個呈現以編程方式創建的RadGrid的aspx頁面。大約有15列,只有1000多行。從加載到結束大約需要6-7秒,其中只有3秒是服務器端處理。我絕對可以優化這一點。但是在客戶端收到服務器的響應後,剩下的4秒似乎就發生了。改進RadGrid客戶端性能
- 按下按鈕後,網格僅在6-7秒後加載。
- 但是Fiddler顯示的總時間爲2.2秒。
- 我有一個GIF在AjaxLoadingPanel中顯示「正在加載...」,並在最後4秒內掛起(不動畫)。
我看了一下Chrome的時間表,這是我所看到的:
- 我在約2秒(發送請求)發送的頁面請求。我開始看到一個GIF加載動畫。
- 大約4.2秒後,GIF動畫停止。在接下來的3-4秒內,即在時間軸上看到「XHR就緒狀態更改」。
- 在8.5秒左右,GIF動畫就會消失,我的頁面將被完全加載。
- 提琴手告訴我,頁面加載花費了2.2秒。
基於此,我猜測瀏覽器試圖解析並呈現最後4秒的頁面。現在我該怎麼做?我可以進一步挖掘,看看爲什麼?
- 似乎有很多來自各種ScriptResource.axd文件的「佈局」事件,這些都是由Telerik生成的。
- 對佈局記錄也顯示一條警告,指出「強制同步佈局是可能的性能瓶頸」。這是我能控制的東西嗎?將.axd文件組合成單個文件(使用自定義HTTP處理程序?)有什麼幫助?
這些是什麼意思? Radgrid爲瀏覽器處理的代碼太多了?
- 分頁打開,但客戶希望每頁至少看1000條記錄。
- 排序,分頁,行選擇,行 - 右鍵單擊菜單等全部啓用/可用。
感謝您的幫助,請讓我知道您是否需要更多信息。
謝謝,我用數據表jquery插件分析虛擬滾動,以便只顯示可見的行。 http://datatables.net/blog/Introducing_Scroller_-_Virtual_Scrolling_for_DataTables – Narayana
嗨,我結束了在Radgrid中使用基於客戶端的網格綁定和虛擬滾動。這個想法有點像視口模式 - 我把所有的數據都放到一個JSON數組中,並保留在客戶端,但我最初只綁定了100行。當我滾動併到達底部時,我將接下來的100行綁定到網格,依此類推。反正它工作。 – Narayana
好吧,我不得不使用TABLE,因爲它們最終在IE中很慢。我目前使用SlickGrids,它使用DIVs並實現視口只渲染 - https://github.com/mleibman/SlickGrid – Narayana