2012-12-14 38 views
-1

太長,我有一個新的問題今日(第一個:ExtJS 4.1 How to create a window with grid dynamicallyExtJS的4.1網格面板加載有超過10,000項

因此,要恢復我的應用程序是顯示關於汽車的數據。我打開我的所有汽車(超過10K)是這樣的:

Ext.create('Ext.data.Store', { 
    storeId: 'CarStore', 
    model: 'Car_Model', 
    proxy: { 
     type: 'ajax', 
     url: './cars.json', 
     reader: 'json' 
    }, 
    autoLoad: { 
     callback: displayMenu 
    } 
}); 

displayMenu功能顯示一個菜單,像這樣的按鈕:

- Brand1 
    - Model1 
    - Model2 
- Brand2 
    -Model1 
- Etc 
- All Cars 

所以,當我創建我的按鈕(取決於品牌/型號中我的JSON店)我這樣做(對於爲例模型按鈕):

var CarStore = Ext.data.StoreManager.lookup('CarStore'); 
var aCarButton= Ext.create('Ext.Button', { 
    text: myModelText, 
    handler: function(button, e) { 
     var grid = Ext.create("CarsGrid", { store: CarStore }); 
     grid.filterByModel(myModelText); 
     var win = Ext.create("CarsWindow", { title: myModelText, items: [ grid ] }); 
     win.show(); 
    } 
}); 
aMenuPanel.add(aAircraftButton); 

因此,當我點擊一個按鈕,顯示所有的汽車在一個網格,在窗口的品牌/型號。

我的問題是顯示我的數據之前的加載需要約5秒的模型,10個品牌和2分鐘的所有我的車。

PS:我用的是同一家商店爲我的按鈕創建和所有網格顯示,但有一個過濾器(品牌,型號,或無)就像你在grid.filterByModel(myModelText);
看在我以前的答案VoidMain建議我使用buffered: true但是當我點擊一個按鈕時會產生錯誤。

+3

想要在瀏覽器中加載10k條記錄嗎?祝你好運,要麼使用分頁或緩衝。 –

+0

是的,我知道這是完全瘋狂的,但我不知道如何使用緩衝模式。 – dgedge03

+0

在我看來,4.1中的緩衝網格仍然有點bug,我個人使用分頁。但是如果你想使用緩衝網格,那麼這是一個很好的起點:看看這些文件,看看它們是如何做到的。 http://docs.sencha.com/ext-js/4-1/#!/example/grid/buffer-grid.html請記住,您的商店將會像調頁一樣調用您的後端(發送start en limit參數)。 –

回答

0

如果尋呼或緩衝絕對不是一個選擇,你可以嘗試撞了超時設置:

Ext.create('Ext.data.Store', { 
    storeId: 'CarStore', 
    model: 'Car_Model', 
    proxy: { 
     type: 'ajax', 
     url: './cars.json', 
     reader: 'json', 
     timeout: 180000 //3 minutes * 60 sec/min * 1000 millis/sec 
    }, 
    autoLoad: { 
     callback: displayMenu 
    } 
}); 
0

你創建與子菜單右側的菜單?

1)請勿在此菜單上添加所有品牌的所有型號。這是10K元素的夥計,沒有人會瀏覽整個菜單!更糟糕的是,如果遊客正在尋找特定的汽車模型..........(想象在這樣的大菜單中找到多少時間!)。

好的,解決方案。

首先,在PHP中使用緩存。 IDK使用的是什麼框架/ CMS,Wordpress具有內置緩存接口,可以通過插件實現。不要在每個頁面上加載查詢,而是將結果存儲在HD中並使用它。

二,更好地組織您的網站。與其在一個大菜單中信任其所有內容訪問,不如爲每個模型創建帖子,爲品牌分類等。製作列出品牌,鏈接到頁面列表模型等。您已將此數據存儲在數據庫中, PHP可以構建動態HTML來列出它們,使用CSS可以使這些列表非常漂亮。