前端存储loaclForage

以前使用本地存储,首先会想到localstorage或者session storage,将要存储的数据转化成字符串后进行setItem操作,但是使用local storage 有几个问题: 
1、它是同步的,不管数据多大,我们需要等待数据从磁盘读取和解析,这会减慢我们的应用程序的响应速度,如果放到移动设备上,可想而之。 
2、仅支持字符串,如果是存对象还需要将对象JSON.stringify({name:”houyuewei”,age:20})下,用的时候再次转换,真是麻烦。 
3、不能加密存储到硬盘上,增加了很多危险性。 
4、永久存储,并且存储容量限制在10M

LocalForage就解决了上面的问题,Mozilla 开发了一个叫 localForage 的库 ,使得离线数据存储在任何浏览器都是一项容易的任务。localForage 是一个使用非常简单的 JavaScript 库的,提供了 get,set,remove,clear 和 length 等等 API,还具有以下特点: 
支持回调的异步 API; 
支持 IndexedDB,WebSQL 和 localStorage 三种存储模式; 
支持 BLOB 和任意类型的数据,让您可以存储图片,文件等。 
支持 ES6 Promises 
支持angularjs,requires,embers等

安装 
可以通过npm或者bower安装

npm install localforage
  • 1

或者

bower install localforage
  • 1

基本用法:

key/value
localforage.setItem(‘key‘, ‘value‘, doSomethingElse);
对象
var obj = { value: "hello world" };
localforage.setItem(‘key‘, obj, function(err, result) { alert(result.value); });

回调
localforage.getItem(‘key‘, function(err, value) {
    if (err) {
        console.error(‘Oh noes!‘);
    } else {
        alert(value);
    }
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

存储 Blobs,TypedArray(具体的类型附在参考链接中),其他的js对象 
为了支持这几种类型,需要做一个配置,如下:

localforage.config({
    driver      : localforage.WEBSQL, // Force WebSQL; same as using setDriver()
    name        : ‘myApp‘,
    version     : 1.0,
    size        : 4980736, // Size of database, in bytes. WebSQL-only for now.
    storeName   : ‘keyvaluepairs‘, // Should be alphanumeric, with underscores.
    description : ‘some description‘
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

参考链接:https://developer.mozilla.org/en-US/Apps/Build/Offline 
https://github.com/mozilla/localForage#how-to-use-localforage 
https://mozilla.github.io/localForage/#setitem 
http://www.html5rocks.com/en/tutorials/offline/storage/ 
http://www.html5rocks.com/en/tutorials/offline/whats-offline/ 
https://www.nczonline.net/blog/2010/04/13/towards-more-secure-client-side-data-storage/

转载自 https://blog.csdn.net/houyaowei/article/details/51445566

原文地址:https://www.cnblogs.com/ckAng/p/8718703.html

时间: 2024-11-03 03:00:48

前端存储loaclForage的相关文章

[聊一聊系列]聊一聊前端存储那些事儿

https://segmentfault.com/a/1190000005927232 欢迎大家收看聊一聊系列,这一套系列文章,可以帮助前端工程师们了解前端的方方面面(不仅仅是代码):https://segmentfault.com/blog/frontenddriver 在web开发越来越复杂的今天,前端拥有的能力也越来越多.其中最重要的一项莫过于web存储.开发者们如果使用得当,这些存储可以帮助我们提升网页的性能与灵活度.本文不讲个中的细节,只讲各种前端存储的利弊,与各类存储的应用场景.毕竟

前端存储之Web Sql Database

前言 在上一篇前端存储之indexedDB中说到,我们项目组要搞一个前后端分离的项目,要求在前端实现存储,我们首先找到了indexedDB,而我们研究了一段时间的indexedDB后,发现它并不是很适合我们的项目,原因文章后面会讲到,所以我们就继续找,于是我们就找到了Web Sql Database,发现这个前端数据库是比较适合我们的项目的,于是果断转投Web Sql Database的怀抱,找存储工具跟穿鞋一个道理,不在乎多炫酷,合适才是王道,要是因为不合适导致磨脚是走不长远的,既然找到了合适

前端存储之indexedDB

在前一个阶段的工作中,项目组要开发一个平台,为了做出更好的用户体验,要求前后端分离,所以这就要在前端实现存储,之后我去研究了下现在比较流行的前端存储数据库,找到了indexedDB,于是便对indexedDB做了一个较为深入的探索,此文就是记录探索过程的一些心得体会. indexedDB为何物 在使用一个技术之前,先搞清楚它是什么,这对你的理解很重要,从DB就可以看出,它肯定是一个数据库,而说到数据库,有两种不同类型的数据库,就是关系型数据库和非关系型数据库,关系型数据库如Mysql.Oracl

前端存储之cookie、localStorage

最近简单了解了前端存储中的cookie.localStorage两种存储方式 localStorage window.localStorage.setItem('a', 1) (window. 可省略) localStorage.setItem('a', 1) //存储数据 localStorage.getItem('a') //获取数据 localStorage.removeItem('a') //删除指定数据 localStorage.clear( ) //删除全部数据 cookie doc

关于前端存储

cookie 前言 网络早期最大的问题之一是如何管理状态.简而言之,服务器无法知道两个请求是否来自同一个浏览器.当时最简单的方法是在请求时,在页面中插入一些参数,并在下一个请求中传回参数.这需要使用包含参数的隐藏的表单,或者作为URL参数的一部分传递.这两个解决方案都手动操作,容易出错.cookie出现来解决这个问题. 作用 cookie是纯文本,没有可执行代码.存储数据,当用户访问了某个网站(网页)的时候,我们就可以通过cookie来向访问者电脑上存储数据,或者某些网站为了辨别用户身份.进行s

简谈前端存储

cookie 定义: 它会在用户访问服务器的时候被带上.但是不要使用过量,因为cookie在每次请求的时候都会被带上.你总不想每次访问自己网站接口或者文件的时候都带上一堆可能用不到的信息把?这样会增大请求包的大小. 限制: cookie可以设置访问域.即,如果你设置cookie的时候,设定了cookie的访问域名为一个顶级域名,则可以达到几个子域名共享cookie的效果. 存储时间: 如果设定了cookie的超时时间的话,那么cookie将在到期的时候失效.如果没有设定,那么cookie就是se

安全测试===8大前端安全问题(下)

在<8大前端安全问题(上)>这篇文章里我们谈到了什么是前端安全问题,并且介绍了其中的4大典型安全问题,本篇文章将介绍剩下的4大前端安全问题,它们分别是: 防火防盗防猪队友:不安全的第三方依赖包 用了HTTPS也可能掉坑里 本地存储数据泄露 缺乏静态资源完整性校验 防火防盗防猪队友:不安全的第三方依赖包 现如今进行应用开发,就好比站在巨人的肩膀上写代码.据统计,一个应用有将近80%的代码其实是来自于第三方组件.依赖的类库等,而应用自身的代码其实只占了20%左右.无论是后端服务器应用还是前端应用开

前端常用插件、工具类库汇总(下)

前言 对本文感兴趣可以先加个收藏,也可以转发分享给身边的小伙伴,以后遇到类似的场景就来看看具体的插件及其用法. 上一篇<前端常用插件.工具类库汇总(上)>内容摘要: " 动画库 滚动库 轮播图 滚屏 弹出框 消息通知 下拉框 级联选择器 颜色选择器 时间日期处理 表单验证 分页插件 " >>前端常用插件.工具类库汇总(上) 本篇延续上一篇的内容继续给大家带来一系列关于前端插件.工具类的内容. 富文本编辑器 wangEditor http://www.wanged

学习哪些技能才能胜任前端开发岗位?

当前IT的发展,已经成为我国的重大产业之一,很多的企业为了争夺优秀的专业人才,不惜给出丰厚的薪资待遇.据知名部门统计,每年IT行业的人才缺口可达到数百万,尤其是前端软件人才的缺口.而我国信息化人才培养还处于发展阶段,导致社会实际需求人才基数远远大于信息化人才的培养基数,使得数以万计的中小企业急需全面系统掌握前端开发基础技能与知识的软件工程师.很多人由于大学误入了大坑专业,毕业后面临重新转行择业的问题.选择学习前端的人不在少数,原因嘛:入门学习的难度可以克服,就业市场广泛,且薪资较高.对于前端学习