在Sencha Touch中,通過將提取的數據「同步」和在線商店與另一個「離線」商店非常容易。
定義脫機存儲:
// Offline store (local storage)
var schouwLijstOffline = new Ext.data.Store({
model: "schouwLijst",
storeId: 'schouwLijstOffline',
proxy: {
type: 'localstorage',
id: "schouwid"
},
});
現在,您可以使用您的主存儲中的監聽器(第一讀取數據),並聽取了負載事件(在這種情況下,因爲「自動加載的手動觸發:假「
在裝載機你‘清()’的該offlinestore的代理,然後填充與數據脫機存儲」 STOREID「* 。新增() *功能。
在我的例子中,我刪除了'offlinestore'中的所有信息,因爲我不再需要它了(它現在在脫機狀態。
網上商店與聽衆:
var schouwLijstStore = new Ext.data.Store({
model: "schouwLijst",
storeId: "schouwLijstStore",
proxy: {
type: 'ajax',
url: 'php/json.php?t=list',
reader: {
type: 'json',
root: 'list'
},
},
autoLoad: false,
listeners: {
load: function() {
// Clear proxy from offline store
schouwLijstOffline.proxy.clear();
// Loop through records and fill the offline store
this.each(function(record) {
schouwLijstOffline.add(record.data);
});
// Sync the offline store
schouwLijstOffline.sync();
// Remove data from online store
schouwLijstStore.removeAll();
}
}
});
現在,當你做一個新的請求,以獲取新的過濾器/數據可以重複同樣的過程:
- 觸發在線商店(storeId.update( );)
- 監聽器增加了從在線商店的數據到offlinestore
- 使用offlinestore
補充:
要從一個商店,你可以使用刪除所有數據:storeId.removeAll();
我認爲這會讓你沿着正確的方向前進,如果有什麼不清楚的,請說出來。
來源
2011-11-21 17:43:41
YDL
爲了得到它,你希望將數據下載到離線商店。然後,當用戶在應用程序內發出請求時,您想在線獲取新數據,並將這些新數據同步到現有商店中? – YDL
是的,這就是我想要實現的! – Manuel