博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端之js-本地存储-localStorage && IndexedDB
阅读量:5906 次
发布时间:2019-06-19

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

1.LocalStorage示例

var Config = function ( name ) {
//storage为空时,初始化的信息 var storage = { 'name': 'test', 'theme': 'css/light.css', 'project/renderer': 'WebGLRenderer', 'project/renderer/antialias': true, 'project/renderer/gammaInput': false, 'project/renderer/gammaOutput': false, 'project/renderer/shadows': true, 'project/vr': false, 'settings/history': false }; //如果本地没有初始数据,则初始化localStroage[name] if ( window.localStorage[ name ] === undefined ) { window.localStorage[ name ] = JSON.stringify( storage ); } //载入localstorage中名为‘name’的用户数据 else { var data = JSON.parse( window.localStorage[ name ] ); for ( var key in data ) { storage[ key ] = data[ key ]; }} // return { getKey: function ( key ) { return storage[ key ]; }, setKey: function () { // key, value, key, value ... for ( var i = 0, l = arguments.length; i < l; i += 2 ) { storage[ arguments[ i ] ] = arguments[ i + 1 ]; } window.localStorage[ name ] = JSON.stringify( storage ); console.log( '[' + /\d\d\:\d\d\:\d\d/.exec( new Date() )[ 0 ] + ']', 'Saved config to LocalStorage.' ); }, clear: function () { delete window.localStorage[ name ]; } };}

运行示例,可在chrome的debug页面看到存储的数据:

 

2.IndexDB

var Storage = function () {    //使用IndexDB创建一个数据库,管理客户端上的大数据,基于事物,支持游标,异步    var indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;    //若该浏览器不支持IndexDB    if ( indexedDB === undefined  ) {        console.warn( 'Storage: IndexedDB not available.' );        return { init: function () {}, get: function () {}, set: function () {}, clear: function () {} };    }    //浏览器支持IndexDB    var name = 'IndexDBTest';    var version = 1;    var database;    return {        init: function ( callback ) {                        //请求——响应的模式,返回IDBOpenDBRequest            var request = indexedDB.open( name, version );        //只有当open的给定的数据库名称和版本的数据库不存在时。才会调用onupgradeneeded,onupgradeneeded是请求数据库版本变化句柄
      request.onupgradeneeded = function ( event ) { var db = event.target.result; };       //捕获request对象的onsuccess事件,onsuccess:请求成功的回调函数句柄            request.onsuccess = function ( event ) {                       database = event.target.result;                 ();            };        //onerror: 请求失败的回调函数句柄            request.onerror = function ( event ) {                console.error( 'IndexedDB', event );            };        },    };

运行示例之后,可在chrome的debug页面看到建立的IndexedDB数据库。

 

我们可以查看IndexDB详情:

var indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; console.log(indexedDB);

查看IDBOpenDBRequest

var IDBOpenDBRequest = indexedDB.open( "indexDBTest", 2 ); console.log(IDBOpenDBRequest);

 

转载于:https://www.cnblogs.com/catherinezyr/p/7121429.html

你可能感兴趣的文章
iOS--collectionView简单瀑布流的实现
查看>>
我想,我需要试试
查看>>
app异常处理
查看>>
Redis 中三种特殊的数据类型
查看>>
Python篇-绘图
查看>>
Cris 的 Spark SQL 笔记
查看>>
Computer Vision 杂志对何恺明 Rethinking ImageNet Pre-training 的最新评论
查看>>
阿里云支付:可以更换绑定的支付宝账号吗?
查看>>
学web前端从哪里开始学起呢-好程序员
查看>>
5G网络数据中心系统需要什么光模块?
查看>>
kinmall分析区块链在去中心化和中心化要思考的问题
查看>>
Eclipse修改log缓冲大小
查看>>
C#开发奇技淫巧二:根据dll文件加载C++或者Delphi插件
查看>>
RESTful与网络请求过程
查看>>
.NET Core实战项目之CMS 第五章 入门篇-Dapper的快速入门看这篇就够了
查看>>
vue插槽slot
查看>>
日历类报表可以这样实现
查看>>
CirruScript 写的: 函数式编程另类指南
查看>>
Java 获取文件的上级目录
查看>>
Confluence 6 CSS 编辑快速入门
查看>>