2013-08-18 77 views
1

因此,我的應用程序啓動速度非常快,並開始減慢每個商店的負載。店裏的Sencha Touch 2,來自遠程代理的每個商店負載的CPU使用率增加

型號:

Ext.define('SkSe.model.Places',{ 
    extend:'Ext.data.Model', 
    config:{ 
     fields:['id','name','icon_code','required_stamps', 'active_stamps','description', 'campaign_id', 'user_favorites' , 'live_action_number'] 
    } 

}); 

存儲本身看起來是這樣的:

Ext.define('SkSe.store.Places',{ 
extend:'Ext.data.Store', 

config:{ 

    autoLoad:true, 
    autoSync:true, 
    model:'SkSe.model.Places', 
    sorters: 'name', 
    grouper: { 
     groupFn: function (item) { 
      return item.get('name')[0]; 
     } 
    }, 
    groupDir: 'DESC', 
    proxy:{ 
     type:'ajax', 
     url:'SOMEURL' 
    } 

} 
} 

);

和實體店被清空,並且每個用戶獲取到這樣的主視圖時加載:

var store2 = Ext.data.StoreManager.lookup('Places'); 
store2.data.clear(); 
store2.getProxy().setUrl('someurl'); 
store2.load(); 

出於某種原因,每次用戶返回到主視圖中的CPU負載增加幾個百分點,直到它變得十分緩慢。

它必須與存儲加載和清除有關,因爲如果我刪除它,CPU過載不會發生。

此外,通過代理服務器到達的數據量可以忽略不計。

任何想法,爲什麼會發生這種情況?

謝謝。

回答

0

我不認爲通過清除商店的底層收藏來破壞記錄。我建議使用商店的removeAll方法,它會對每條記錄進行銷燬,並希望釋放每個記錄所使用的一些資源。

如果您的商店正在處理大型數據集,那麼這可能會加起來並導致放緩。

+0

不幸的是,我沒有嘗試removeAll,沒有任何改變。 –

相關問題