2014-06-05 45 views
4

我正在使用ExtJS網格和它越來越慢,3000+的記錄。排序大約需要4秒鐘。ExtJS網格緩慢,超過3000條記錄

我想也許在我的表中使用分頁。然而,在閱讀文檔後,我仍然對extjs中的分頁工作方式感到不確定。每當你打開一個頁面時,這是否會從服務器獲取數據?我寧願不是這樣。我寧願將3000條記錄保存在瀏覽器中,然後呈現的內容只是這些行的一部分。

另外我正在使用Extjs版本4.2.1。如果我升級到版本5.我會得到一些性能改進嗎?

+0

護理解釋爲什麼接近的選票? –

+0

是的,分頁由服務器處理,因爲網格不知道數據集。因此,根據開始,限制參數和存儲的總屬性,客戶端請求數據集的服務器。如果符合您的要求,您可以使用本地分頁和本地排序。使用本地分頁,你可以使用pagingmemory代理。這是http://docs.sencha.com/extjs/4.2.0/#!/api/Ext.ux.data.PagingMemoryProxy – Dev

回答

5

嘗試使用緩衝渲染器插件,使用插件的3000+記錄並不多。從煎茶DOC

段:

var grid = Ext.create('Ext.grid.Panel', { 
    // ... 
    autoLoad: true, 
    plugins: { 
     ptype: 'bufferedrenderer', 
     trailingBufferZone: 20, // Keep 20 rows rendered in the table behind scroll 
     leadingBufferZone: 50 // Keep 50 rows rendered in the table ahead of scroll 
    }, 
    // ... 
}); 

您可以使用尾隨/主導緩衝CONFIGS修剪你的網格,或者只是跳過它們從配置。我從來沒有需要修剪我自己

裁判: http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.grid.plugin.BufferedRenderer

+1

你可以看到緩存渲染器的作用[這裏](http://extjs.eu/ext-grid-renderer-danger/)。大約有1000條記錄。 – Saki

+0

哇,看起來很快!謝謝你今天有空試試 –

+0

thianks!謝謝Saki,你的網站總是很棒! –