2010-02-07 52 views
0

我們使用大輸入表單和幾個輸入字段,並遇到性能問題。確切的問題是表單的呈現時間。需要幾秒鐘(4-10秒)才能顯示錶格。 我們使用多列布局和由json數據存儲加載的〜30個組合字段和另外約10個輸入字段。渲染過程非常緩慢,所以我可以看到窗體的對齊和顯示過程。有什麼方法可以加快顯示過程嗎?Extjs表單性能問題

+1

我必須問,無論如何30個組合字段有多可用?對於任何形式來說,這都是一大堆領域。 – Lloyd 2010-02-08 11:58:03

+0

是的,這是很多領域,但這樣做是有道理的。 – Hubidubi 2010-02-09 11:10:49

回答

0

難道是由JSONStores加載的數據導致對齊更改?關閉所有JSONStore,然後測量渲染過程 - 您會發現瀏覽器需要相當長時間才能完成30個後端請求!

0

我也建議您的商店是問題。你嘗試過FireFox嗎?或者按照@JJ的建議,不要加載商店,看看會發生什麼。我也會建議懶惰地呈現你的表格,但似乎你的問題涉及商店。

我在加載商店時(通常是花費大量時間的後端查詢)看到了類似的緩慢。所以,我創建了一個AJAX調用來檢索所有商店數據。在AJAX回調中,解析有效負載的內容並適當地分發給每個商店。

+0

我們使用Firefox + Firebug進行開發。我不認爲最初的問題是json商店和請求(請參閱上面的我的回覆)。我認爲緩慢來自渲染和佈局。它可以通過眼睛看出它試圖對齊/調整窗體的各個部分以適合在一起。雖然我已經說過3.1版本解決了我們大部分的問題。 – Hubidubi 2010-02-09 11:16:36

1

嘗試獲得一個時隙的所有組合框的數據,然後使用store.load方法

0

加載數據,這可能有人會有所幫助:

我們有多個複選框和this後幫助我們同樣的問題解決它。

每次,當Form或其他容器添加一個元素 - 它的佈局重新計算。當存在很多元素時,這會導致渲染問題。

所以,你可以:

  1. 添加所有的孩子在一個時間:
container.add(panel, button, grid); 
  • 暫停佈局重新計算:
  • container.suspendLayout = true; 
        addSomething(); 
        container.suspendLayout = false; 
        container.doLayout();