Sencha触摸app离线

时间:2014-03-04 07:14:20

标签: android extjs sencha-touch sencha-touch-2

我的应用程序几乎已经完成了sencha touch2.3,现在我想让它在离线模式下工作。

我需要从我的服务器应用程序加载大量数据和图像,它在在线模式下工作正常。

  

我需要解决的问题以及我做了什么

1。当有网络时,需要在websql中存储数据(使用sql代理)。

我这样做..如果有网络,我正在加载在线商店并将所有记录添加到离线商店。

Ext.getStore('foodGroup').load({
    callback: function(records, operation, success) {
        var offFoodGrup = Ext.getStore('offFoodGroup');
        offFoodGrup.add(records);
        offFoodGrup.sync();
        offFoodGrup.load();
      }
    },
    scope: this
});

2。如果需要我需要更新离线数据,我试过但它不起作用。它会添加重复数据。

Ext.getStore('foodGroup').load({
    callback: function(records, operation, success) {
        var offFoodGrup = Ext.getStore('offFoodGroup');
        if(records.length != (localStorage.offFoodGroup || 0)){
            offFoodGrup.removeAll();
            offFoodGrup.sync();
            offFoodGrup.load({
                callback: function(offRecords, operation, success) {
                    offFoodGrup.add(records);
                    offFoodGrup.sync();
                    offFoodGrup.load();
                    localStorage.offFoodGroup = offFoodGrup.getAllCount();
                },
                scope: this
            });
        }
    },
    scope: this
});

第3。我需要离线显示大量图像,所以我虽然将图像网址转换为base64字符串可能会解决我的问题。我如何在以下代码中执行此操作。

Ext.define('MyAPP.view.PhotoContainer', {
    extend: 'Ext.Container',  
    xtype : 'photoContainer',
    config:{            
        tpl: Ext.create('Ext.XTemplate',
                        '<ul class="foodList">',
                            '<tpl for=".">',
                            '<li class="foodContainer" code="{code}">',
                            '<img class="food" src="'+localStorage.httpServerPrefix+'food/showImage/{code}" alt="{name}"/>',
                            '<p code="{code}" class="foodnamestyle">{[this.getpreferedlanguage(values)]}</p>',
                            '</li>',
                            '</tpl>',
                        '</ul>'
        }),
        store : 'FoodStore'
    }
});

1 个答案:

答案 0 :(得分:0)

如果可以的话,查看FoodGroup模型以及在线和离线商店的代码会很有帮助。

使用base64格式的图像只需使用如下数据网址:

<img src="data:image/png;base64,{Your Base64 Image Data}"/>

希望有所帮助,如果你可以发布你的模特和商店,我可以帮助你。

谢谢, 特里斯坦