html5本地存储主要有两种localStorage和sessionStorage

       都是使用相同api,存入后都是字符串类型

localStorage和sessionStorage使用方法:

1.setItem(key,value)   存储数据

                   

2.getItem(key)   获取数据

                    

           3.removeItem(key)      删除某一个缓存数据

           4.clear()                        清空所有缓存数据

           5.key(index)                 根据下标来获取存储字段

cookie:

test=test:就是存储的值和对应的名字     Max-Age=3600  就是过期时间1个小时

获取就是console.log(document.cookie);

localStorage、sessionStorage、cookie注意点:

        1.只能存储字符串,所以对象、数组、函数的储存需要转化字符串

使用JSON.stringify(value);存将对象转化为字符串格式;

使用JSON.parse(value);将字符串格式转化为对象;

 2.本地存储只能针对同源策略,其他不是同源的标签页面不能获取当前标签页的缓存

         3.性能与存储的大小无关,减少读取item的次数就能提高性能,所以多存少读,就能提高新能

localStorage:

         1.没有储存时间限制,关闭浏览器还是会保存数据;

          2.容量2~5Mb左右

sessionStorage:

           1.关闭浏览器时清空数据;

           2.各个浏览器不一,个别浏览器没有上限;

           

cookie:

            1关闭浏览器数据不清空,

            2可设置过期时间

            3.无论是服务端设置的还是客服端设置的,都会在请求头里带上cookie

            4.有大小限制,最好不超过4000字节

indexedDB使用方法:

           是html5的数据库:也是一种存储方法

           1.创建数据库

                 注意:版本号只能升,不能降,不然创建不成功

                 

                 用法:

                 

           2.在数据库创建"表"

                注意:1.必须在版本号升级中触发,才可以建表

                           

2.创建时,还有一个参数,有两种方式可以配置存放key的值

方法1:

方法2:

3.存数据的方法add(data)(前提:创建时必须配置存key的方式)

模式有两种:readwrite读写和readonly只读;

获取数据:get(key);   getAll()//获取所有数据

修改数据:put(data);  既可以修改,也可以新增;也有回调事件同获取

                         以keyPath:id存储为例:如果表存在id:1004则是修改,不存在则是新增;

                         

                   删除数据:delete(key);也有回调事件同获取

                         

                   全部删除:clear();也有回调事件同获取

                         

               4.索引

是key的升级版,有时候不想用系统的key,就可以使用索引,自定义key

创建时:createIndex(表,自定义的key,是否唯一)

获取时:

就可以通过index(表名字).get(自定义key)来获取值

                                        

5.游标:store.openCursor()  就是范围遍历

1.IDBKeyRange.only();查询唯一

2.IDBKeyRange.upperBound(),小于等于输出,如果有true,就只是小于

cursor.update({数据})更新某项值,cursor.delete({数据})删除数据

3.IDBKeyRange.lowerBound(),大于等于输出,如果有true,就只是大于

用法同上。。。。

4.IDBKeyRange.bound(n,m,true,true)

//参数1就是大于等于n,

//参数2就是小于等于m,

//参数3控制参数1,为true只大于,

//参数4控制参数2,为true只小于

6.索引+游标的好处:

索引按值搜索+游标范围遍历

最新文章

  1. C++读写文件ofstream,ifstream,fstream)[转]
  2. javascript_basic_01之概述
  3. 用最简单话概括SSH三框架
  4. Python2.4-原理之函数
  5. Hibernate 配置文件与映射文件 总结
  6. 针对httptest4net构建elasticsearch集群压力测试用例
  7. centos安装postfixadmin
  8. 用宏定义封装LoadLibrary,方便的动态加载dll
  9. 域名下Web项目重定向出现DNS域名解析错误问题
  10. Android Studio git ignore
  11. Centos更换yum源
  12. Objective-C的继承与组合
  13. AI佳作解读系列(三)——深度学习中的合成数据研究
  14. Mac系统编译FFmpeg
  15. LeetCode算法题-Construct Quad Tree(Java实现)
  16. ABP后台服务之作业调度Quartz.NET
  17. 06python上
  18. C# X509Certificate类 调用证书
  19. elementUI 表格设置表头样式
  20. Java - LinkedList源码分析

热门文章

  1. Appium元素选择 滑动 通知栏
  2. 以图搜图功能实现(windows10版)
  3. linux 多级时间轮应用场景
  4. vue 复制功能
  5. 深度学习PyTorch入门(1):3060 Pytorch+pycharm环境搭建
  6. 2022-05-16内部群每日三题-清辉PMP
  7. 复习第一点-1.跑通一个helloworld
  8. 自定义Ribbon负载均衡
  9. 硬件IIC主从机中断代码注释解析
  10. python_子网划分计算器