2023本地存储方案

  • 本地存储方案

    1. cookie

      • 本地存储:有期限的限制,可以自己设置过期期限。在期限内,不论页面刷新还是关闭,存储的信息都还会存在。
    2. localStorage
      • 本地持久化存储:页面刷新或者关闭,存储的信息一直存在,除非手动清除或者卸载浏览器,而且没有有效期的限制。
    3. sessionStorage
      • 本地会话存储,传话结束-即浏览器页面关闭,存储的信息会自动清除。
      • 但是刷新页面,会话不算结束,基于sessionStorage存储的信息还是会存在的。
        • 比如网页小游戏,游戏窗口没关,都先在本地存。窗口关闭,就把数据存到服务器上。新打开窗口,从服务器拿到数据,再存在会话中。
    4. IndexedDB/WebSQL
      • 本地数据库存储:利用浏览器自带的数据库,基本上都是非关联型数据库。
      • 相对于其它的本地存储方案,其可以存储更多的数据。
    5. 虚拟内存存储
      • 特点:页面刷新或者关闭,存储的信息都会清除掉。
      • 类型
        • 全局变量
        • vuex
        • redux
        • ...
    6. ...
    • 无论那一种本地存储方案,都受到浏览器和源的限制!

      • 源:就是域名。
      • 浏览器就是谷歌浏览器与IE浏览器这类的区别。
      • 即不同源及不同浏览器下,本地存储的内容相互之间是独立的!
    • 不论那一种本地存储方案,都是以明文形式进行存储的!
      • 尽可能不存储需要安全限定的数据,即便要存储,一定要记得加密处理。
    • cookie与localStorage区别:
      • 时效性:cookie可以设置过期时间,而localStorage是持久化存储。

        • 用于灵活控制时效性。
        • 真实项目中,我们需要自己实现一套具备有效期的localStorage存储方案。
      • 存储大小:

        • 同源下,cookie最多只允许存储4kb内容。
        • 而localStorage允许最多存储5MB。
      • 稳定性:

        • cookie是不稳定的。

          • 超过大小,有些浏览器是存不进去新的。有些是清除一些旧的cookie的。
          • 基于清除历史记录安全卫士清扫垃圾等操作,都可能会把存储的cookie给干掉。
            • 但这些操作对localStorage无效!
        • localStorage是比较稳定的。
        • 限制规则:某些浏览器具备隐私模式/无痕浏览模式,在这种模式下,cookie存储的信息必定不会被保留,但是localStorage在新版本浏览器中也会受到影响。
        • 和服务器端的关系:cookie和服务器之间是有猫腻的,而localStorage和服务器端没有直接的关系。
          • 基于cookie存储的信息:

            • 服务器返回给客户端信息的时候,如果有响应头中携带了Set-Cookie字段,则客户端浏览器,会自动在本地设置一个cookie,把Set-Cookie字段中的信息进行存储!
            • 客户端本地只要存储了cookie,不论服务器是否需要,每一次向服务器发请求的时候,浏览器都会自动在请求头中,基于Cookies字段,把本地存储的cookie信息,都传递给服务器!
            • 但是以上的处理,仅限同源访问!
              • 因为在浏览器的非同源策略中,默认是禁止Cookie的传输的!

                • 但是可以在axaj请求中设置一个请求头,让Cookie可以携带给非同源浏览器。
          • 基于localStorage存储的信息,除非手动发送给服务器,否则和服务器没有半毛钱关系!
            • 可以手动从本地存储中取出来,在ajax中附带发送给服务器。
            • 也可以在处理ajax请求函数中,把服务器发送的数据存储到本地存储中。
        • cookie可以兼容到IE5,但是localStorage是H5新增的,只能兼容到IE9及以上浏览器!

[2023本地存储方案](https://www.cnblogs.com/fangchaoduan/p/17608006.html)的更多相关文章

  1. [转]App离线本地存储方案

    App离线本地存储方案 原文地址:http://ask.dcloud.net.cn/article/166 HTML5+的离线本地存储有如下多种方案:HTML5标准方案:cookie.localsto ...

  2. [转]Dcloud App离线本地存储方案

    原文地址:http://ask.dcloud.net.cn/article/166 HTML5+的离线本地存储有如下多种方案:HTML5标准方案:cookie.localstorage.session ...

  3. htm5本地存储方案——websql的封装

    一.websql 简介   在HTML5中,大大丰富了客户端本地可以存储的内容,添加了很多功能来将原本必须保存在服务器上的数据转为保存在客户端本地,从而大大提高了Web应用程序的性能,减轻了服务器端的 ...

  4. Android本地存储方案 SharedPreferences

    原文地址:http://www.yanwushu.com/post/43.html 存储位置 SharedPreferences数据保存在: /data /data/<package_name& ...

  5. htm5本地存储方案——indexdb的封装

    不BB直接上代码 /*封装IndexdDB*/ var localDatabase = { }; localDatabase.dbName = "yiliDB"; localDat ...

  6. 本地存储(cookie&sessionStorage&localStorage)

    好文章,最全面.就查它吧:https://segmentfault.com/a/1190000004556040 1.DOM存储:https://developer.mozilla.org/zh-CN ...

  7. web前端实现本地存储

    当我们在提及web前端本地存储的时候,首先需要介绍一下本地化存储的概念和历史.本地化存储从来不是一个新奇的概念,因为web应用程序一直在追求的就是媲美甚至超越桌面应用程序.但是桌面应用程序一直优于we ...

  8. 小强的HTML5移动开发之路(19)——HTML5 Local Storage(本地存储)

    来自:http://blog.csdn.net/dawanganban/article/details/18218701 一.浏览器存储的发展历程 本地存储解决方案很多,比如Flash SharedO ...

  9. JavaScript本地存储实践(html5的localStorage和ie的userData)

    http://www.css88.com/archives/3717 JavaScript本地存储实践(html5的localStorage和ie的userData) 发表于 2011年06月11日  ...

  10. (转)Javascript本地存储小结

    转自:https://i.cnblogs.com/EditPosts.aspx?opt=1 以下是原文: 1. 各种存储方案的简单对比 Cookies:浏览器均支持,容量为4KB UserData:仅 ...

随机推荐

  1. [转帖]详解:Linux Chrony 设置服务器集群同步时间

    https://www.linuxprobe.com/centos7-chrony-time.html 导读 Chrony是一个开源的自由软件,像CentOS 7或基于RHEL 7操作系统,已经是默认 ...

  2. [转帖]CPU的制造和概念

    https://plantegg.github.io/2021/06/01/CPU%E7%9A%84%E5%88%B6%E9%80%A0%E5%92%8C%E6%A6%82%E5%BF%B5/ 为了让 ...

  3. IIS 实现autoindex的简单方法 能够下载文件等.

    之前使用nginx 的autoindex on 的参数 能够实现了 nginx的 目录浏览查看文件 但是那是linux上面的 windows 上面很多 使用的 其实是 iis的居多 然后看了下 其实也 ...

  4. 【转贴】libcrypto.so.10丢失导致sshd无法运行解决方案

    http://www.cnblogs.com/billy98/p/4226023.html libcrypto.so.10丢失导致sshd无法运行解决方案 服务器由于掉电开启系统后无法远程ssh,重启 ...

  5. js中toFixed 并不是你想的那样进行四舍五入

    toFixed 的简单介绍 toFixed() 方法可把 Number 类型的数字通过四舍五入为指定小数位的字符串.(将数字类型转化为字符串类型) 也就是说toFixed只能够处理数字类型的. 字符串 ...

  6. VS2013未能正确加载microsoft.visualstudio.editor.implementation.editorpackage

    在用VS2013做项目,但是特别不顺利,这不,VS2013突然罢工了,连解决方案都打不开了,会出现如下的错误: 试了网上的各种解决方案,总算找到一个适合自己的,具体方法如下: 1.打开VS2013的& ...

  7. 【四】gym搭建自己的环境,全网最详细版本,3分钟你就学会了!

    相关文章: [一]gym环境安装以及安装遇到的错误解决 [二]gym初次入门一学就会-简明教程 [三]gym简单画图 [四]gym搭建自己的环境,全网最详细版本,3分钟你就学会了! [五]gym搭建自 ...

  8. 2.2 CE修改器:未知数值扫描

    本关需要扫描未知数只扫描,要在不知道初始值的情况下找到一个在0到500之间的数值.首先,选择"未知的初始值"扫描方式,在数值类型中选择 4 字节,并点击"首次扫描&quo ...

  9. 7.1 C/C++ 实现动态数组

    动态数组相比于静态数组具有更大的灵活性,因为其大小可以在运行时根据程序的需要动态地进行分配和调整,而不需要在编译时就确定数组的大小.这使得动态数组非常适合于需要动态添加或删除元素的情况,因为它们可以在 ...

  10. C/C++ 监控磁盘与目录操作

    遍历磁盘容量: #include <stdio.h> #include <Windows.h> void GetDrivesType(const char* lpRootPat ...