js关闭手机浏览器_几种常用的浏览器储存方式

 Local Storage、Session Storage、Cookies、Vuex几种常用的存储方式,你真的会用吗?

我们开发网站的时候,经常会需要储存一些数据。用什么来储存呢?储存的数据类型包括基本数据类型和复杂数据类型。

常用的储存方式有:Local Storage、Session Storage、Cookies、Vuex

01

定义

  • Local Storage

储存的值能永久的储存在浏览器上。

同一个浏览器上的同一个域名下,储存数据一直都在。

只要在相同的协议、相同的主机名、相同的端口下,就能读取/修改同一个localStorage对象。

数据类型是标准的键值对(Key-Value)。

  • Session Storage

储存特定于某个会话的数据,储存数据依赖于当前窗口(当前会话)。

如果当前窗口关闭,储存数据会消失。

如果打开新窗口,无储存数据(储存数据是依赖于浏览器窗口的,之前窗口对应的储存数据不会在新窗口对应的储存地方出现)。

如果当前窗口刷新,储存数据不变。

如果启动另外一个浏览器并打开一个窗口,无储存数据(储存数据是依赖于浏览器窗口的,之前窗口对应的储存数据不会在新窗口对应的储存地方出现)

只要在相同的协议、相同的主机名、相同的端口、同一个窗口(浏览器的标签页)下,就能读取/修改同一个sessionStorage对象。

数据类型是标准的键值对(Key-Value)。

  • Cookies

cookie生命期为只在设置的cookie过期时间之前一直有效。

cookie是基于同一个浏览器使用。(我们这里说的储存方式都是基于同一个浏览器)

cookie与是否关闭浏览器或窗口没关系。这点与localStorage相同。

66b80c30148a6f07484b5eafa8b15b06.png

  • Vuex

在运行中储存数据,可以供程序全局使用。

是一种集中式状态管理模式,它按照一定的规则管理状态,保证状态的变化是可预测的。

如果当前窗口关闭,储存数据会消失。

如果打开新窗口,储存数据会消失。

如果当前窗口刷新,储存数据会消失。

如果启动另外一个浏览器并打开一个窗口,储存数据会消失。

相比localStorage和sessionStorage,vuex存储的数据可以即时更新到当前项目下的所有引用了该数据的组件。但是如果刷新页面的话,vuex存储的值会重置,而localStorage和sessionStorage存储的值不会重置。

数据类型是无限制。

  • 之间的关系

1. cookie在浏览器和服务器端来回传递数据,而localStorage和sessionStorage不会自动把数据发送给服务器,仅会保存在本地。cookie会在浏览器请求头或者ajax请求头中发送cookie内容。

2. cookie可以设置过期日期,sessionStorage是会话级的数据,浏览器窗口关闭即清除,localStorage是永久性的数据,一旦赋值,不管多长时间这值都是存在的,除非手动清除。

3. cookie的存储大小受限制,一般不超过4k,而localStorage和sessionStorage的存储大小一般不超过5M,大大提高了存储的体积。

4. sessionStorage不跨窗口,在另外一个窗口打开sessionStorage就不存在了,它只在当前窗口有效,而cookie和localStorage都是跨窗口的,即使浏览器的窗口关闭,这两个值还是存在的。

5. vuex是在内存中储存的。其他3种是物理储存。

02

使用

  • Local Storage

localStorage.setItem(name, value);
localStorage.getItem(name);
  • Session Storage

sessionStorage.setItem(name, value);
sessionStorage.getItem(name);
  • Cookies

要安装js-cookie ,执行npm install js-cookie --save

import Cookies from "js-cookie";
Cookies.set(name, value);
Cookies.get(name);
  • Vuex

要安装vuex,执行npm install vuex --save

src/main.js文件

import Vue from "vue";import App from "./App.vue";import router from "./router";import store from "./store";require("./permission");Vue.config.productionTip = false;new Vue({  router,  store,  render: h => h(App)}).$mount("#app");

src/store/index.js文件

import Vue from "vue";import Vuex from "vuex";Vue.use(Vuex);export default new Vuex.Store({  state: {},  mutations: {},  actions: {},  modules: {}});

03

业务场景

  • Local Storage

  (1) 适合长期储存的数据

  (2) 可以用来统计页面访问次数

  • Session Storage

  (1) 敏感性账号一次性登录

  (2) 可以用来统计当前页面元素的点击次数。

  • Cookies

(1)判断用户是否登陆过网站,以便下次登录时能够实现自动登录(或者记住密码)。如果我们删除cookie,则每次登录必须重新填写登录的相关信息。

(2)保存上次登录的时间等信息。

(3)保存上次查看的页面

(4)可以用来统计页面访问次数

(5)存储用户名和密码相关信息

  • Vuex

(1)单页应用中,组件之间的共享状态,一般用于中大型单页应用

(2)购物车的数据共享

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值