Web app 离线新方案: DOMSnap - 网页快照离线存储和恢复

2016-04-04 14:12:49 +08:00
 unbug

#背景和基本原理

HTML5 提供了 LocalStorage, IndexedDB, 和 window.caches 来帮我们构建可 offline 的 web app. 但 这些技术里我们都忽视了本地数据库. DOMSnap 则将其充分发挥之, 将 HTML 快照保存到本地的 IndexedDB/WebSQL,在页面离线或者网络不好时再恢复.通过 DOMSnap, web app 可以最大限度的离线页面的状态和减少网络请求和前端模板渲染. 离线的路还很长, 为何不试试 DOMSnap 呢?

DOMSnap GitHub DEMO

#目前的特点

#使用方法

方式 1. 页面中引入脚本

<script src="DOMSnap.min.js"></script>

方式 2. 安装包

npm install --save domsnap

然后包含到你的模块中

var DOMSnap = require('domsnap');

Examples

//init DOMSnap
var DS = DOMSnap(function(){
  console.log('DOMSnap is ready');
});

//capture snapshot html of #main
DS.capture('#main');
//capture with specified capture id
DS.capture('#main','my_id');

//set the html of #main by it's captured snapshot html
DS.resume('#main');
//set by specified capture id
DS.resume('#main','my_id');

DOMSnap GitHub DEMO

2214 次点击
所在节点    分享创造
5 条回复
ykjsw
2016-04-04 14:54:40 +08:00
dom 上的事件都还在吗
unbug
2016-04-04 15:08:11 +08:00
@ykjsw DOMSnap 主要保存的是 DOM 结构, 恢复时用的是 innerHTML, 所以你的事件是在的, 无论你是显示声明的事件还是事件监听都在
ajan
2016-04-06 23:26:03 +08:00
好东西,有时间来研究下
unbug
2016-04-07 09:54:07 +08:00
@ajan 值得一试
ajan
2016-04-07 11:09:32 +08:00
@unbug 一定要试试

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/268460

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX