2014-02-08 71 views
0

我有EXTJS中的功能,我從控制器獲取一個商店,然後加載它。extjs時間複雜度的Store.load方法

functionName: function (controller) { 
    return function() { 

     Ext.widget('callWindow'); 
     var variable= cotroller.getCallWindowPopup(); 
     controller.getAccountsStore().load({ 
      params: { 
       source_system_id: ssid 
      }, 
      callback: function (records) { 
       variable.loadRecord(records[0]); 
      } 
     }); 
    } 

} 

該帳戶存儲是一個json商店,可能有幾千條記錄。 哪個操作在這裏很貴? getAccountsStore或加載方法。如果負載很貴,我該如何避免多次調用它?

回答

1

getAccountsStore是一個集合中的引用查找,它的直接。 load當然是昂貴的。它加載存儲中的所有數據,將每條記錄實例化爲模型對象。

通常,您不需要多次撥打load,除非您的數據發生變化,並且您想刷新。

如果您使用分頁存儲,則可以減少加載時間。這隻會將一頁數據加載到商店中。這可能會或可能不會在您的情況下被接受。

+0

我有一種情況,我必須用兩個不同的參數調用負載。我如何實現這一目標? – Arun

+0

全部取決於您加載的數據。如果它是相同的,並且例如回調更改,則不應加載多次。但是,如果數據不相同,例如如果過濾器發生變化,則無法在每次更改時加載。 –

+0

我添加了一個全局變量,並將其中的記錄[0]存儲在回調函數中,我在其他函數中使用它。因爲,這是我想要在其他函數中訪問而不調用昂貴的加載方法的對象。 – Arun