博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(十二)本地存储及同步
阅读量:7283 次
发布时间:2019-06-30

本文共 1206 字,大约阅读时间需要 4 分钟。

为了使离线时也可以编辑及浏览文章,需要增加本地数据存储功能,在线时联网同步文章数据。 这里使用HTML5提供的新的本地存储数据库。

使用数据库

const DB_NAME = 'BlogDB'const PostStore = 'post'let BlogDBconst request = indexedDB.open(DB_NAME, 1)request.onerror = function(event) {    alert('BlogDB error:', event.target)}request.onupgradeneeded = function() {    BlogDB = request.result    if (!BlogDB.objectStoreNames.contains(PostStore)) {	// 指定主键        BlogDB.createObjectStore(PostStore, { keyPath: '_id' })    }}request.onsuccess = function() {    BlogDB = request.result}复制代码

使用事务

let t = BlogDB.transaction([PostStore], 'readwrite').objectStore(PostStore)复制代码

常用的增删改查

// 增加t.add(data)//修改t.put(data)// 删除t.delete(id)// 查找某一个t.get(id)// 条件筛选let list = []t.openCursor().onsuccess = function(event) {    let cursor = event.target.result    if (cursor) {        let v = cursor.value        let valid = fn(v,q) // 条件筛选        if (valid) {            list.push(v)        }        cursor.continue()    } else {        console.log(list) // 结果    }}复制代码

数据同步

在线判断

通过navigator.onLine来判断是否联网,在连网时通过接口拉取数据,然后进行同步。

同步规则

同步有两种情况:本地向线上同步,线上向本地同步。

获取线上与本地数据最新数据时间戳,进行比较; 如果线上比本地数据新,线上数据同步到本地; 反之,本地数据同步到线上,相同就无需同步。

博客地址:

更多精彩,请关注我的公众号!

转载于:https://juejin.im/post/5b6abf356fb9a04f860657f4

你可能感兴趣的文章
Django返回json数据
查看>>
在Linq to Entity 中使用lambda表达式来实现Left Join和Join
查看>>
Linux自学笔记——http协议进阶及httpd配置(2)
查看>>
Linux必会原理之软连接文件和硬链接文件的区别
查看>>
ORACLE 12c常见问题解决
查看>>
查看安装的tensorflow版本号和路径
查看>>
依靠自学,争取帮助
查看>>
利用Zabbix的自动注册功能添加局域网中的服务器进行监控
查看>>
system center 详解
查看>>
shell介绍,命令历史,命令补全和别名,通配符,输入输出重定向
查看>>
在SCCM中配合 WSUS后,显示: 客户端尚未报告
查看>>
朴素的UNIX之-调度器前传
查看>>
压力测试与提升服务器能力的几个方法
查看>>
进入编辑模式、vim命令模式、vim实践
查看>>
postfix发送邮件
查看>>
CUDNN学习笔记(3)
查看>>
Python Mock 的入门
查看>>
shell练习
查看>>
SQL SERVER 2005 远程查询
查看>>
虚拟币交易平台虚拟货币交易平台山寨币开发数字货币交易平台
查看>>