前几天面试遇到了一个题是问localStorage和sessionStorage的区别,当时的回答不是很全面,今天就针对这个问题做一下整理(概念,用法,区别)

  HTML5 Web存储,一个比 cookie 更好的本地存储方式,什么是 HTML Web存储?

  定义:使用HTML5 可以在本地存储用户的浏览数据。早些时候,本地存储使用的是 cookie,但是Web存储需要加载更加的安全与快速,这些数据不会被保存在服务器上,但是这些数据只用于用户请求网站,它也可以存储大量的数据,而不影响网站的性能。(数据以键/值对存在,web网页的数据只允许该网页访问使用)

localStorage(本地存储)

  localStorage 对象存储的数据没有时间限制,用于长久保存整个网站的数据

常用API(localStorage相当于window下面的一个属性,故可以使用 . 方法和 [] 方法)

  • 保存数据

    localStorage.name = 'zhangsan'
    // 或者
    localStorage.['name'] = 'zhangsan'
    // 或者
    localStorage.getIten('name','zhangsan')
  • 读取数据
     // 自身方法
    localStorage.getItem("name");
    // []方法
    localStorage["name"];
    // .方法
    localStorage.name;
  • 删除单个数据(使用delete关键字)
     // 自身方法
    localStorage.removeItem("name");
    // []方法
    delete localStorage["name"];
    // .方法
    delete localStorage.name
  • 删除所有数据
     localStorage.clear()
  • 得到某个索引的值
     1 // 通过自身的key
    2 for (var i=0;i<localStorage.length;i++) {
    3 console.log(localStorage.key(i));
    4 }
    5
    6 // 通过for in 循环获取
    7 for(var key in localStorage){
    8 console.log(key);
    9 }
  • 获取所有值
     localStorage.valueOf();取出所有的值
  • 判断是否具有某个key
     localStorage.hasOwnProperty("name")
    // 如果存在的话返回true,不存在返回false

:1.localStorage特定于页面的协议,不在同一域名下不能访问

  2.数据有大小限制,5M左右,不同浏览器大小会有不同

  3.生命周期是永久的,但是数据实际是存在浏览器的文件夹下的,卸载浏览器数据可能就会删除

  4.浏览器可以设置是否可以访问数据,如果设置不允许则会访问失败

  5.兼容IE8以上浏览器

  6.默认情况下是以字符串形式存储的,可以根据个人需要进行数据类型转换

sessionStorage(会话存储)

  sessionStorage 方法针对一个 session 进行数据存储。当用户关闭浏览器窗口后,数据会被删除

常用API(同上,和localStorage类似)

注意事项也和localStorage类似,唯一不同的就是数据存储周期不一样

面试之HTML5 Web存储的更多相关文章

  1. HTML5 Web存储(Web Storage)技术及用法

    在如今的Web开发中,HTML5是大家讨论的最大一个话题.HTML5提供的新功能特征使得Web程序员如虎添翼,并免去了以往钻研各种方法来让网站更好.更快.更灵活的气力.这些新功能中有一个非常让我感兴趣 ...

  2. HTML5 web 存储

    简介: HTML5 web 存储,一个比cookie更好的本地存储方式. 首先我们先了解一下: 什么是 HTML5 Web 存储? 使用html5可以在本地存储用户的浏览数据. 早些时候,本地存储使用 ...

  3. HTML5 Web存储 页面间进行传值

    在实际使用过程中,经常会遇到需要在页面间进行传值的情况,最初设想一定需要后端才能进行数据的存储和读取,或者在本地使用一个cookie进行保存,直到了解到HTML5 Web存储 使用HTML5的新特性可 ...

  4. HTML5: HTML5 Web 存储

    ylbtech-HTML5: HTML5 Web 存储 1.返回顶部 1. HTML5 Web 存储 HTML5 web 存储,一个比cookie更好的本地存储方式. 什么是 HTML5 Web 存储 ...

  5. 有趣的HTML5 Web 存储

    HTML5 web 存储,一个比cookie更好的本地存储方式. 什么是 HTML5 Web 存储? 使用HTML5可以在本地存储用户的浏览数据. 早些时候,本地存储使用的是 cookie.但是Web ...

  6. 【读书笔记】HTML5 Web存储

    PS:这里讲web存储,主要是在客户端存储的一些技术:cookie,localstorage,sessionstorage,WebSQL.     Cookie   Cookie是HTML4中在客户端 ...

  7. HTML5本地化应用开发-HTML5 Web存储详解

    文章不是简单的的Ctrl C与V,而是一个字一个标点符号慢慢写出来的.我认为这才是是对读者的负责,本教程由技术爱好者成笑笑(博客:http://www.chengxiaoxiao.com/)写作完成. ...

  8. HTML5 web存储

    既然涉及到HTML5知识,那么必定会存在一定的兼容性问题,这里就涉及到浏览器的支持情况了. 浏览器支持情况: Internet Explorer 8+, Firefox, Opera, Chrome, ...

  9. 使用HTML5 Web存储的localStorage和sessionStorage方式

    localStorage(本地存储),可以长期存储数据,没有时间限制,一天,一年,两年甚至更长,数据都可以使用.sessionStorage(会话存储),只有在浏览器被关闭之前使用,创建另一个页面时同 ...

随机推荐

  1. SQL-W3School-高级:SQL AUTO INCREMENT 字段

    ylbtech-SQL-W3School-高级:SQL AUTO INCREMENT 字段 1.返回顶部 1. Auto-increment 会在新记录插入表中时生成一个唯一的数字. AUTO INC ...

  2. Java静态方法和实例方法区别详解

    静态方法和实例方法的区别主要体现在两个方面: 在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式.而实例方法只有后面这种方 ...

  3. 14 Flutter仿京东商城项目 头部搜索导航布局 修改主题 修正ScreenAdapter类

    main.dart import 'package:flutter/material.dart'; import 'routes/router.dart'; void main() => run ...

  4. mac下的夜神模拟器链接vscode

    1.找到夜神模拟器,点击右键,查看包内容,找到文件夹下面的macos在点击右键打开终端.输入: adb connect 127.0.0.1:62001 dart和flutter交流群:45289287 ...

  5. php 转化整型需要注意的地方

    public function tt(){ $num = '19.90'; echo $num; echo '<br/>--------------<br/>'; echo 1 ...

  6. Masonry问题

    1. Masonry的布局问题: 参考博客: https://github.com/huang303513/UILayoutOfiOS 2. Masonry的自适应行高问题: 参考博客:https:/ ...

  7. Redfish技术介绍

    1.1  概述 Redfish是一种基于HTTPs服务的管理标准,利用RESTful接口实现设备管理.每个HTTPs操作都以UTF-8编码的JSON格式(JSON是一种key-value对的数据格式) ...

  8. Css3 权重

    Css权重 权重--很多规则应用到同一个元素上时,权重是决定哪个生效的(优先级) 权重等级与权值 行内样式(1000)>ID选择器(100)>类.属性选择器或伪类选择器(10)>元素 ...

  9. Visual Studio Code 调试 SpringBoot

    Build Anything with Spring Boot:Spring Boot is the starting point for building all Spring-based appl ...

  10. 学习Yii(3)

    组件 Component的或其子类的实例.属性和事件 组件的属性.(名称大小写不敏感) 可读可写,就像对象的公共成员变量. 通过$component->属性名.获取属性值.$component- ...