IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 浏览器的储存方式总结---cookie、web Storage -> 正文阅读

[JavaScript知识库]浏览器的储存方式总结---cookie、web Storage

为什么要进行数据存储

??????随着Web应用程序的出现,产生了对于能够直接在客户端上存储用户信息能力的要求,我们知道当我们访问某个页面的时候,很多东西都需要从服务器端进行加载,如果这个时候能将一些东西存储在客户端的话,是不是就可以直接拿来用啦,方便快捷,又可以节省了很多不必要的请求,为什么不用呢?

Cookie

??????说到cookie,cookie存储是属于文档对象模型。cookie有两个主要功能:第一个功能就是用于解决http无状态的缺点,在客户端存储会话信息,记录用户的状态;而第二个功能也就是我们现在经常使用cookie在客户端存储数据。

Cookie的构成

  • 名称:唯一的、确定的cookie的名称
  • 值:存储在cookie中的字符串值,该值必须被URL编码
  • 域:cookie对于哪个域是有效的,所有向该域发送的请求都会包含这个cookie信息
  • 路径:对于指定域中的路径,应该向服务器发送cookie
  • 失效时间:表示cookie何时应该被删除的时间戳
  • 安全标志:指定后,cookie只有在使用SSL连接的时候才发送到服务器

如何使用cookie存储数据

??????有两种方式可以生成cookie,一种是服务器发送http响应时指定Set-Cookie进行指定;另一种我们可以使用js生成cookie。
示例:

var  CookieNow={
 get: function(name) { 
            var cookieName = encodeURIComponent(name) + "=",cookieStart = document.cookie.indexOf(cookieName),cookieValue = null; 
              if(cookieStart > -1) {
                  var cookieEnd = document.cookie.indexOf(";", cookieStart); 
                  }
               if (cookieEnd == -1) {
                  cookieEnd = document.cookie.length;
               }
           cookieValue=decodeURIComponent(document.cookie.substring(cookieStart + cookieName.length, cookieEnd));
         } 
         return cookieValue;
    },
       set: function(name, value, expires, path, domain, secure) { 
         var cookieText = encodeURIComponent(name) + "=" + encodeURIComponent(value);          
         if(expires instanceof Data) {
            cookieText += ";expires=" + expires.toGMTString();
        } if(path) {
            cookieText += ";path=" + path;
        } if(domain) {
            cookieText += ";domain=" + domain;
        } if(secure) {
            cookieText += ";secure";
        }
        document.cookie = cookieText;
    }
}

比如我们想在cookie中存放是否点击的状态时:

     CookieNow.set("ifClick", "true");

当我们想得到是否点击的状态,可以这样拿到数据:

      CookieUtil.get("ifClick");

Cookie的缺点

  1. cookie需要在客户端和服务器端之间来回传送,会浪费不必要的资源。
  2. cookie的存储大小有限制,对于每个域,一般只能设置20个cookie,每个cookie大小不能超过4KB。
  3. cookie因为保存在客户端中,包含的任何数据都可以被他人访问,cookie安全性比较低。

web存储机制

什么是Web存储

??????Web Storage也是一种在客户端存储数据的一种机制,主要的目的是为了克服由cookie带来的一些限制,当数据需要被严格控制在客户端上时,无须将数据在客户端和服务器之间来回的进行传送,并且可以存储大量的跨会话的数据。一般来说,Web Storage包含了两种对象的定义,sessionStorage和LocalStorage。

sessionStorge

??????首先,session的意思是会话,一次会话是指浏览器从打开到关闭的过程。浏览器关闭,会话结束。而sessionStorage对象是存储特定于某个会话的数据,也就是数据只保存到浏览器关闭,会在浏览器关闭后消失,存储在sessionStorage中的数据可以跨越页面刷新而存在。

sessionStorage.setItem("ifClick", "true"); // 使用方法存储数据
sessionStorage.ifClick = "true";// 使用属性存储数据
//获取数据
sessionStorage.getItem("ifClick");

特点:

  • 同源策略限制.若想在不同页面之间对同一个sessionStorage进行操作,这些页面必须在同一协议、同一主机名和同一端口下。
  • 单标签页限制。sessionStorage操作限制在单个标签页中,在此标签页进行同源页面访问都可以共享sessionStorage数据。
  • 只在本地存储,seesionStorage的数据不会跟随HTTP请求一起发送到服务器,只会在本地生效,并在关闭标签页后清除数据。
  • 存储方式,seesionStorage的存储方式采用key、value的方式。
  • 存储上限限制:不同的浏览器存储的上限也不一样,但大多数浏览器把上限限制在5MB以下

LocalStorage

??????sessionStorage和localStorage有很多共同的特点,localStorage与sessionStorage的唯一一点区别就是localStorage属于永久性存储

window.localStorage.setItem('myCat', 'Tom');  // 设置
let cat = window.localStorage.getItem('myCat'); // 读取
window.localStorage.removeItem('myCat');  // 移除
window.localStorage.clear();  // 清空所有
window.localStorage.key(1); // 读取索引为1的值
window.localStorage.length; // 数目

最后放上一张他们的比较图:
在这里插入图片描述

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-02-26 11:22:00  更:2022-02-26 11:22:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:03:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码