jquery访问浏览器本地存储cookie,localStorage和sessionStorage

时间:2022-08-26 08:31:19

前言:cookie,localStorage和sessionStorage都是浏览器本地存储数据的地方,其用法不尽相同;总结一下基本的用法。


一、cookie

  1. 定义:
    • 存储在本地,容量最大4k,在同源的http请求时携带传递,损耗带宽;
    • 可设置访问路径,只有此路径及此路径的子路径才能访问此cookie,存在有效的时间。
  2. 注意点

    • cookie的访问需要服务器环境,直接在本地文件访问无效;
    • cookie的访问和设置需要导入jquery.cookie.js文件;
    • 浏览器对每一个访问的地址下可添加的cookie是有限制的;同时每个浏览器可添加的cookie个数也存在限制。
  3. 作用:
    • 储存用户的痕迹信息,如用户名,ID号,密码等,是服务器脚本发送给浏览器的加密数据,便于下次访问时用户可以直接登录等;
  4. 运用代码

//访问cookie,mycolor代表键
var $cook = $.cookie("mycolor");


//设置cookie
$.cookie("mycolor", "red"});
$.cookie("mycolor", "red", { expires: 7, path: '/' });//增加了有效时间和访问路径

//删除cookie,传递null值
$.cookie("mycolor", null});

说明:

  1. 'mycolor'参数相当于cookie存储数据的键,即数据的名字,通过名字访问;
  2. cookie的设置有三个参数,第一为设置数据的键,第二个为设置数据的值,expires表示有效时间,单位为天,path为访问路径,"/"表示当前文件路径,在网站中表示根目录。

注意:如果不设置路径,默认情况下只有设置cookie的网页才可以访问此cookie;如果想网站的网页可以共享cookie,将路径设为根目录。

注意:cookie就相当于一个能存储数据的微型本地数据库,"mycolor"相当于每条数据的key。

二、localStorage

  1. 定义:一个本地的小型数据文件

    • 存储在本地,容量为5M或者更大,不会在请求时候携带传递;
    • 数据在所有同源窗口*享,一直有效,除非人为删除,可作为长期数据。
  2. 注意点:

    • localStorage数据不需要依赖服务器环境访问,可以直接在本地文件访问;
    • 不需要额外的文件支持。
    • 同源窗口指的是同一个域名下或者是index.html所在的文件夹下的文件路径。
  3. 代码运用

//设置:
localStorage.setItem("mycolor", "456");
localStorage.mycolor= '456';

//获取:
var $color = localStorage.getItem("mycolor");
var $color = localStorage.mycolor

var $color = localStorage.key(0);//获取第一个键,按角标获取
var $color = localStorage.key("");//获取最后一个键

var $length = localStorage.length;//获取数据的长度

//删除
localStorage.removeItem("mycolor");

//清空
localStorage.clear();//将所有保存的数据删除

说明:

  1. 设置数据格式类似键值对,"mycolor"代表key,"456"代表值。
  2. 数据是有排序的,后加入的角标靠前,最后加入的角标为0.

注意:localStorage相当于将数据保存在磁盘,是永久的,但是其针对的是固定的域名下的文件,打开其他的域名下的网页,localStorage不会显示。

三、sessionStorage

  1. 定义:一个本地的小型数据库

    • 存储在本地,容量为5M或者更大;
    • 不会在请求时候携带传递,在同源的当前窗口关闭前有效。
  2. 注意点:

    • sessionStorage同样不需要再服务器的环境下运行;
    • 不需要额外的文件支持;
    • sessionStorage数据设置后即使页面进行重载也不会清除;但当该窗口关闭后,里面的数据就会清除,再打开没有数据。相当于将数据保存在内存中
  3. 代码运用

//设置:
sessionStorage.setItem("mycolor", "456");
sessionStorage.mycolor= '456';

//获取:
var $color = sessionStorage.getItem("mycolor");
var $color = sessionStorage.mycolor

var $color = sessionStorage.key(0);//获取第一个键,按角标获取
var $color = sessionStorage.key("");//获取最后一个键

var $length = sessionStorage.length;//获取数据的长度

//删除
sessionStorage.removeItem("mycolor");

//清空
sessionStorage.clear();//将所有保存的数据删除

说明:

  1. sessionStorage的使用方法和localStorage一样。
  2. 数据是有排序的,后加入的角标靠前,最后加入的角标为0.