在离线cordova应用程序中存储来自rest api的json对象的最佳方法

时间:2014-03-11 15:05:36

标签: javascript json angularjs cordova local-storage

我正在构建一个用Cordova for Android和iOS包装的AngularJS应用程序。 我的所有数据都来自我的其余API。

我有像my.api/groups/1/items这样的网址来获取商品列表

 [
    {
        id: 5,
        type: "foo",
        title: "Item 5",
        group: 1,
        body: "<p>Some content</p> ",
        img: "http://my.website/images/item5.jpg"
    },
    {
        id: 6,
        ...
    }
]

my.api/items/5获取特定项目

{
    id: 5,
    type: "foo",
    title: "Item 5",
    group: 1,
    body: "<p>Some content</p> ",
    img: "http://my.website/images/item5.jpg"
}

我用restangular检索我的数据并且它完美地运行

Restangular.one('group', id).getList('items').then(function(data){
  $scope.items = data;
});

现在我希望这些数据可以离线使用并不时刷新。 无法进行Localstorage,因为我将拥有+ 5MB的数据和图像。

  • 我看到很多关于文件API的帖子,但这是否意味着我需要为每个项目提供一个文件? 例如:item1.json,item2.json和列表items.json的文件 我认为有一个比500多个不同文件更好的解决方案......

  • 如何处理图片?我是否需要解析我的api,下载图像并替换为本地链接?

1 个答案:

答案 0 :(得分:1)

为什么不使用WebSQL?作为一个网络标准,它已经死了,但它在移动设备上运行良好,在PhoneGap / Cordova中运行良好。至于图像,我可能会将它们存储为二进制文件系统。