一般app首页 模型缓冲

自我总结一下关于app首页 数据缓冲:

一、最近在学习H5 所以先来总结一下H5的缓冲机制

a、localStorage:没有时间限制的数据存储,可以长期存储数据      

        localStorage.setItem“key”“value”//存储

localStorage.getItemkey//key进行取值

localStorage.valueOf( )//获取全部值

localStorage.removeItem(key)//删除单个值

localStorage.clear()//删除全部数据

localStorage.length//获得数据的数量

localStorage.key(N)//获得第N个数据的key

  b、sessionStorage:会话存储,只有在浏览器被关闭之前使用。创建另一个页面时同意可以使用,关闭浏览器之后数据就会消失。(localStorage与sessionStroage用法相同)

二、源生app利用sqlite数据库来存储数据

注:利用FMDB来做数据存储

#import "VideoModelTool.h"

#import "FMDB.h"

@implementation VideoModelTool

static FMDatabase * _db;

+(void)initialize

{

    //1.打开数据库

    NSString * file = [[NSSearchPathForDirectoriesInDomains(NSDownloadsDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingString:@"video.sqlite"];

    NSLog(@"file%@",NSHomeDirectory());

    _db = [FMDatabase databaseWithPath:file];

    if (![_db open]) return;

    

    //2.创表

    [_db executeUpdate:@"CREATE TABLE video_model(id integer PRIMARY KEY,video blob NOT NULL,titleId integer NOT NULL);"];

    

}

//从数据库中取模型

+(NSArray *)videoModels:(int)page

{    /**

      * size代表每次去多少条数据、page代表页码

      */

    int size = 5;

    int pos = (page - 1) * size;

    FMResultSet *set = [_db executeQueryWithFormat:@"SELECT * FROM video_model ORDER BY id DESC LIMIT %d,%d;", pos, size];

    NSMutableArray *videos = [NSMutableArray array];

    while (set.next) {

        ListModel *video = [NSKeyedUnarchiver unarchiveObjectWithData:[set objectForColumnName:@"video"]];

        [videos addObject:video];

    }

    return videos;

}

//将一个模型添加到数据库中

+(void)addModelsToSqlite:(ListModel *)video;

{

    NSData *data = [NSKeyedArchiver archivedDataWithRootObject:video];

    [_db executeUpdateWithFormat:@"INSERT INTO video_model(video, titleId) VALUES(%@, %d);", data, video.titleId];

}

@end


在主页控制器中总共三步:

第一:进入页面时先从数据库中取数据,如果有就直接赋值,没有则发请求

if ([VideoModelTool videoModels:1]) {

        self.modelArray = [VideoModelTool videoModels:1];

    }else{

        [self sendRequestWithId:-1];//发送网络请求

    }


第二:下拉刷新,有新数据则把新数据存入数据库中

第三:上拉加载,从数据库中取出数据展示到页面(不能一次全部取出要分批取出。)如果没有更多数据则发送网络请求,把返回的数据存到数据库中。

分析的不全,留作纪念。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值