联系:

  • sessionStorage和localStorage一样,都是用来缓存客户端缓存信息。
  • 他们都只能存储字符串类型对象。

区别:

  • localStorage的生命周期是永久的,除非用户主动清除浏览器UI上存储的localStorage信息,否则它将永久存在。
  • sessionStorage的生命周期是存在于标签页或窗口,用于本地存储一个会话(session)中的数据,这些数据随着窗口或标签页的关闭而被清空。因此其仅仅是会话级别的本地存储。
  • 不同的浏览器之间是无法共享sessionStorage和localStorage信息的,同一浏览器的不同页面之间可以共享localStorage信息(页面属于相同域名和端口),但不同页面或标签页之间无法共享sessionStorage的信息。注意:页面及标签页是指顶级窗口,如果一个标签页包含多个iframes标签,且它们属于同源页面,它们之间是可以共享sessionStorage信息的。
  • 同源的判断规则:

    http://www.test.com

    https://www.test.com (不同源,因为协议不同)

    http://my.test.com(不同源,因为主机名不同)

    http://www.test.com:8080(不同源,因为端口不同)

  • localStorage和sessionStorage都具有相同的操作方法,例如setItem、getItem和removeItem等
    localStorage.setItem('key','value');//以key为名称存储一个value值
    localStorage.getItem('key');//得到名称为key的值 //枚举localStorage的方法

    var storage=window.localStorage;
    for(var i=0;i<storage.length;i++){
    var name=storage.key(i);
    var value=storage.getItem(name);
    } //删除localStorage中存储信息的方法:
    localStorage.removeItem('key);//删除名称为“key”的信息。
    localStorage.clear();//清除所有方法
  • 通过getItem或直接使用localStorage["key"]获取到的信息均为实际存储的副本。

    例如:

    localStorage.key = {value1:"value1"}​;

    localStorage.key.value1='a'​;

    这里是无法​对实际存储的值产生作用的,下面的写法也不可以:

    ​localStorage.getItem("key").value1="a";

    web storage和cookie的区别:

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

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

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

cookies,sessionStorage和localStorage的区别的更多相关文章

  1. 关于cookies,sessionStorage和localStorage的区别

    如果我说得啰嗦了,请麻烦提醒我一下~~ 面试的时候说: 首先这三个可以在浏览器端按下F12,在Application可以查看到. 如下图: cookies: sessionStorage: sessi ...

  2. cookies,sessionStorage 和 localStorage 的区别

    请描述一下 cookies,sessionStorage 和 localStorage 的区别? sessionStorage 和 localStorage 是HTML5 Web Storage AP ...

  3. 7,请描述下cookies,sessionStorage和localStorage的区别

    7,请描述下cookies,sessionStorage和localStorage的区别 首先,cookie是网站为了标识用户身份而储存在用户本地终端(client side,百科: 本地终端指与计算 ...

  4. cookies、sessionStorage和localStorage的区别

    cookies.sessionStorage和localStorage的区别 对比 特性 Cookie LocalStorage SessionStorage 数据的生命周期              ...

  5. cookies,sessionStorage和localStorage的区别

    共同点:都是保存在浏览器端,且同源的.区别:cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递.而sessionStorage和localStora ...

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

    sessionStorage 和 localStorage 是HTML5 Web Storage API 提供的,可以方便的在web请求之间保存数据.有了本地数据,就可以避免数据在浏览器和服务器间不必 ...

  7. cookies,sessionStorage,localStorage的区别

    sessionStorage 和 localStorage 是HTML5 Web Storage API 提供的,可以方便的在web请求之间保存数据.有了本地数据,就可以避免数据在浏览器和服务器间不必 ...

  8. 描述一下 cookies,sessionStorage 和 localStorage 的区别

    cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密),数据会在浏览器和服务器间来回传递.sessionStorage和localStorage不会自 ...

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

    cookie在浏览器和服务器间来回传递. sessionStorage和localStorage不会sessionStorage和localStorage的存储空间更大:sessionStorage和 ...

随机推荐

  1. 转:使用Nlog记录日志到数据库

    原文:http://www.cnblogs.com/Gyoung/archive/2012/10/18/2729613.html Nlog是一个很不错的.NET日志记录组件,它可以将日志输出到控件台, ...

  2. Oracle递归查询

    一.创建数据 1.1.建立表与插入数据 CREATE TABLE DISTRICT ( ID ) NOT NULL, PARENT_ID ), NAME BYTE) NOT NULL ); ALTER ...

  3. IOS 自定义按钮(代码实现)+九宫格

    在一些下载应用里整个页面都是按钮,有好多好多,但是仔细观察不难发现他们很有规律.就像下面一样

  4. OC正则表达式的使用

    OC中一般正则表达式的使用方法为2步 1.创建一个正则表达式对象 2.利用正则表达式来测试对应的字符串 例如 NSString *checkString = @"a34sd231" ...

  5. c语言中的部分字符串和字符函数

    // // main.c // homeWork1230 // // #include <stdio.h> #include <string.h> #include <c ...

  6. DEV主从表

    1.主从表隐藏表格展开按钮. 当主表内容不包含子表时候隐藏,主从表加号图标.效果如下图. 实现代码 private void gvMain_CustomDrawCell(object sender, ...

  7. Android Design Support Library——Floating Action Button

    Floating Action Button是一种悬浮操作的圆形按钮,继承自ImageView,可以通过android:src或者ImageView的任意方法,来设置FloatingActionBut ...

  8. Effective Java 56 Adhere to generally accepted naming conventions

    Typographical naming conventions Identifier Type Type Examples Package com.google.inject, org.joda.t ...

  9. JavaScript Patterns 3.4 Array Literal

    Array Literal Syntax To avoid potential errors when creating dynamic arrays at runtime, it's much sa ...

  10. 转 Java多线程中Sleep与Wait的区别

    Java中的多线程是一种抢占式的机制,而不是分时机制.抢占式的机制是有多个线程处于可运行状态,但是只有一个线程在运行. 共同点: 1. 他们都是在多线程的环境下,都可以在程序的调用处阻塞指定的毫秒数, ...