Sencha Touch - Offline Application with offlineStorage synced to a online store. Fetch online data on demand and add to offlineStoreage我正在开发一...
我正在开发一个带有 sencha touch 的 Web 应用程序。我需要实现一个离线可用(offlineStorage)但获取的商店(绑定到网格)
在 Sencha Touch 中,将获取的数据"同步"和在线商店到另一个"离线"商店非常容易。
定义一个离线商店:
1 2 3 4 5 6 7 8 9 | // Offline store (local storage) var schouwLijstOffline = new Ext.data.Store({ model:"schouwLijst", storeId: 'schouwLijstOffline', proxy: { type: 'localstorage', id:"schouwid" }, }); |
您现在可以在主存储上使用侦听器(第一次获取数据)并侦听加载事件(在这种情况下,由于"autoLoad: false"而手动触发。
在加载器中,您"clear()"离线存储的代理,然后使用"storeId"*.add()* 函数将数据填充到离线存储。
在我的示例中,然后我从"离线商店"中删除所有信息,因为我不再需要它(它现在在离线商店中。
带有监听器的在线商店:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | 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();)
- 侦听器将数据从在线商店添加到离线商店
- 使用离线商店
补充:
要从存储中删除所有数据,您可以使用:storeId.removeAll();
我认为这会让你朝着正确的方向前进,如果有不清楚的地方请说出来。
本文标题为:关于 extjs:Sencha Touch – 离线应用程序与离线存


基础教程推荐
- Loaders.css免费开源加载动画框架介绍 2025-01-23
- Django操作cookie的实现 2024-04-15
- html5视频如何嵌入到网页(视频代码) 2025-01-22
- 纯css实现漂亮又健壮的tooltip的方法 2024-01-23
- webpack学习笔记一:安装webpack、webpack-dev-server、内存加载js和html文件、loader处理非js文件 2023-10-29
- JSONObject与JSONArray使用方法解析 2024-02-07
- Bootstrap学习笔记之css组件(3) 2024-01-22
- clientX,pageX,offsetX,x,layerX,screenX,offsetLeft区别分析 2024-01-08
- js判断一个对象是否在一个对象数组中(场景分析) 2022-10-21
- 创建Vue3.0需要安装哪些脚手架 2025-01-16