`
zha_zi
  • 浏览: 594059 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

sessionStorage 和localStorage 区别

 
阅读更多

html5中的Web Storage包括了两种存储方式:sessionStorage和localStorage。

sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。

localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。

web storage和cookie的区别

Web Storage的概念和cookie相似,区别是它是为了更大容量存储设计的。Cookie的大小是受限的,并且每次你请求一个新的页面的时候Cookie都会被发送过去,这样无形中浪费了带宽,另外cookie还需要指定作用域,不可以跨域调用。

除此之外,Web Storage拥有setItem,getItem,removeItem,clear等方法,不像cookie需要前端开发者自己封装setCookie,getCookie。

但是Cookie也是不可以或缺的:Cookie的作用是与服务器进行交互,作为HTTP规范的一部分而存在 ,而Web Storage仅仅是为了在本地“存储”数据而生(来自@otakustay 的纠正)

html5 web storage的浏览器支持情况

浏览器的支持除了IE7及以下不支持外,其他标准浏览器都完全支持(ie及FF需在web服务器里运行),值得一提的是IE总是办好事,例如IE7、IE6中的UserData其实就是javascript本地存储的解决方案。通过简单的代码封装可以统一到所有的浏览器都支持web storage。

要判断浏览器是否支持localStorage可以使用下面的代码:

if(window.localStorage){     alert("浏览支持localStorage") }else{    alert("浏览暂不支持localStorage") } //或者 if(typeof window.localStorage == 'undefined'){ 	alert("浏览暂不支持localStorage") }

localStorage和sessionStorage操作

localStorage和sessionStorage都具有相同的操作方法,例如setItem、getItem和removeItem等

localStorage和sessionStorage的方法

setItem存储value

用途:将value存储到key字段
用法:.setItem( key, value)
代码示例:

	sessionStorage.setItem("key", "value"); 	localStorage.setItem("site", "js8.in");

getItem获取value

用途:获取指定key本地存储的值
用法:.getItem(key)
代码示例:

	var value = sessionStorage.getItem("key"); 	var site = localStorage.getItem("site");

removeItem删除key

用途:删除指定key本地存储的值
用法:.removeItem(key)
代码示例:

	sessionStorage.removeItem("key"); 	localStorage.removeItem("site");

clear清除所有的key/value

用途:清除所有的key/value
用法:.clear()
代码示例:

	sessionStorage.clear(); 	localStorage.clear();

其他操作方法:点操作和[]

web Storage不但可以用自身的setItem,getItem等方便存取,也可以像普通对象一样用点(.)操作符,及[]的方式进行数据存储,像如下的代码:

var storage = window.localStorage; storage.key1 = "hello"; storage["key2"] = "world"; console.log(storage.key1); console.log(storage["key2"]);

localStorage和sessionStorage的key和length属性实现遍历

sessionStorage和localStorage提供的key()和length可以方便的实现存储的数据遍历,例如下面的代码:

var storage = window.localStorage; for (var i=0, len = storage.length; i  <  len; i++){     var key = storage.key(i);     var value = storage.getItem(key);     console.log(key + "=" + value); }

storage事件

storage还提供了storage事件,当键值改变或者clear的时候,就可以触发storage事件,如下面的代码就添加了一个storage事件改变的监听:

if(window.addEventListener){ 	window.addEventListener("storage",handle_storage,false); }else if(window.attachEvent){ 	window.attachEvent("onstorage",handle_storage); } function handle_storage(e){ 	if(!e){e=window.event;}	 }

storage事件对象的具体属性如下表:

Property Type Description
key String The named key that was added, removed, or moddified
oldValue Any The previous value(now overwritten), or null if a new item was added
newValue Any The new value, or null if an item was added
url/uri String The page that called the method that triggered this change

分享到:
评论

相关推荐

    cookies,sessionStorage 和 localStorage 的区别1

    cookies、sessionStorage 和 localStorage 的区别 cookies、sessionStorage 和 localStorage 是三个常用的浏览器端存储机制,它们都可以在浏览器端存储数据,但它们之间有着很大的不同。 cookies cookies 是一种...

    请描述一下 cookies,sessionStorage 和 localStorage 的区别?

    请描述一下 cookies,sessionStorage 和 localStorage 的区别?

    cookie、sessionStorage和localStorage的区别

    ### Cookie、SessionStorage 和 LocalStorage 的区别 #### 一、基本概念 - **Cookie**: 是一种小型文本文件,由服务器生成并发送至客户端浏览器,在浏览器中保存一段时间后,再发送回服务器。主要用于跟踪用户状态...

    Vue2原型挂载sessionStorage、localStorage、element弹窗

    在这个主题中,“Vue2原型挂载sessionStorage、localStorage、element弹窗”指的是在Vue2应用中扩展原型链,以便更方便地访问和操作浏览器的本地存储(localStorage)和会话存储(sessionStorage),同时结合Element...

    使用Typescript编写更加易用的localStorage和sessionStorage的API

    在JavaScript开发中,`localStorage`和`sessionStorage`是两种常用的浏览器存储机制,它们允许开发者在用户浏览器上持久化数据。然而,它们的原生API使用起来并不直观,需要处理字符串化和反字符串化的问题,同时也...

    HTMl5的存储方式sessionStorage和localStorage详解

    `sessionStorage`和`localStorage`还提供了`key`和`length`属性,用于遍历存储的所有键和计算存储的键的数量。例如,可以通过循环遍历所有键值对: ```javascript for (var i = 0; i &lt; localStorage.length; i++) {...

    cookie,localStorage,sessionStorage区别与应用

    sessionStorage 概念 存放在客户端的一段文本信息 存储在客户端的临时信息,只能存放字符串类型数据 同localStorage 大小 4k 5M 5M 生命周期 浏览器关闭,数据清空 存在内存中,除非自己删除 浏览器关闭,...

    storage:一个存储库,它使用相同的API支持sessionStorage和localStorage

    贮存一个存储库,它使用相同的API支持sessionStorage和localStorage安装 npm install good-storage用法 import storage from 'good-storage' // localStorage storage.set(key,val) storage.get(key, def) // ...

    前端大厂最新面试题-存储面试题.docx

    今天我们将讨论存储相关的知识点,包括 Cookies、SessionStorage 和 LocalStorage 的区别、相同点、使用场景及封装自定义LocalStorage。 Cookies、SessionStorage 和 LocalStorage 的区别 Cookies、...

    H5 localStorage 和 sessionStorage 对json的处理方式

    为了监听localStorage和sessionStorage的变化,可以使用`window.addEventListener('storage', callback)`,这个事件会在同源策略下,任何窗口的localStorage或sessionStorage发生变化时触发。 6. 浏览器兼容性: ...

    使用sessionStorage保存与获取json对象

    将json对象使用JSON.stringify(JsonObject)方式转换为字符串,存入到 sessionStorage或localStorage 中;然后从 sessionStorage或localStorage 中取出对应的字符串,使用eval或JSON.parse将字符串转换为json对象。...

    rebirth-storage:TypeScript存储模块(内存,sessionStorage,localStorage)和@Cacheable装饰器

    TypeScript存储模块(内存,sessionStorage,localStorage)和@Cacheable装饰器 安装 npm install rebirth-storage --save 如何使用? 用于存储数据的StorageService 注册StorageService import { ...

    一种更好的方法来使用localStorage和sessionStorage

    在JavaScript的世界里,`localStorage`和`sessionStorage`是两种非常重要的Web存储机制,它们允许开发者在用户浏览器中保存数据,以便在用户关闭并重新打开页面后仍然可以访问。这两个API是HTML5引入的,极大地扩展...

    localStorage,sessionStorage的使用

    localStorage和sessionStorage是前端开发中常用的Web存储API,它们为开发者提供了一种在客户端保存数据的方式。localStorage和sessionStorage在使用上有很多相似之处,但也存在关键性的差异。 ### localStorage的...

    JavaScript 60道面试题及答案.docx

    JavaScript是前端开发中不可或缺的一部分,本文将从多个方面对JavaScript进行了详细的介绍,涵盖了HTTP协议状态码、XMLHttpRequest对象的ReadyState、SessionStorage和LocalStorage、Cookie的区别、Ajax的GET和POST...

    html5+css3面试题答案.docx

    Cookies、SessionStorage 和 LocalStorage 都是在浏览器端存储的数据,但它们有所不同。Cookies 会被发送到服务器端,而 SessionStorage 和 LocalStorage 不会。SessionStorage 的概念很特别,它引入了一个“浏览器...

    前端 45 道面试题及答案.docx

    本文档汇总了45道前端面试题及答案,涵盖了浏览器工作原理、渲染引擎、JS引擎、COOKIE、SESSIONSTORAGE、LOCALSTORAGE、跨域问题、页面可见性、网页验证码、网页标准和标准制定机构、微格式等多个方面的知识点。...

    一个本地存储工具控制localStorage和sessionStorage

    首先,`localStorage`和`sessionStorage`的主要区别在于数据的生命周期和作用域。`localStorage`的数据不会过期,除非被手动清除,且可以在同源策略下的所有窗口之间共享;而`sessionStorage`的数据仅限于当前会话,...

Global site tag (gtag.js) - Google Analytics