zoukankan      html  css  js  c++  java
  • JS的数据储存格式

    javaScript有三种数据存储方式,分别是:
    sessionStorage
    localStorage
    cookier

    相同点:都保存在浏览器端,同源的

    不同点:
    ①传递方式不同
    cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。
    sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。
    ②数据大小不同
    cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。
    存储大小限制也不同,cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。
    sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。
    ③数据有效期不同
    sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;
    localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;
    cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。
    ④作用域不同
    sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;
    localStorage 在所有同源窗口中都是共享的;
    cookie也是在所有同源窗口中都是共享的。
    Web Storage 支持事件通知机制,可以将数据更新的通知发送给监听者。
    Web Storage 的 api 接口使用更方便。javaScript有三种数据存储方式,分别是:


    sessionStorage
    localStorage
    cookier

    相同点:都保存在浏览器端,同源的


    不同点:
    ①传递方式不同
    cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。
    sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。


    ②数据大小不同
    cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。
    存储大小限制也不同,cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。
    sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。


    ③数据有效期不同
    sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;
    localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;
    cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。

    ④作用域不同
    sessionStorage不在不同的浏览器窗口中共享,即使是同一个页面;
    localStorage 在所有同源窗口中都是共享的;
    cookie也是在所有同源窗口中都是共享的。

     
    Web Storage 支持事件通知机制,可以将数据更新的通知发送给监听者。
    Web Storage 的 api 接口使用更方便。


    2.使用sessionStorage、localStorage

    localStorage:
    是一种你不主动清除它,它会一直将存储数据存储在客户端的存储方式,即使你关闭了客户端(浏览器),属于本地持久层储存

    sessionStorage:
    用于本地存储一个会话(session)中的数据,一旦会话关闭,那么数据会消失,比如刷新。

    有时候,我们需要将数据存储到sessionStorage和localStorage中,这样做的好处有:
    1 缓存数据
    2 减少对内存的占用

    但是,storage只能存储字符串的数据,对于JS中常用的数组或对象却不能直接存储。
    它能保存更大的数据(IE8上是10MB,Chrome是5MB),同时保存的数据不会再发送给服务器,避免带宽浪费。

     
    localStorage存储方法(sessionStorage类似)

    localStorage.name =’vanida;
    
    localStorage[“name”]=’vanida’;
    
    localStorage.setItem(“name”,”vanida”);
    
    //这三种设置值方式是一样的;
    
    localStorage获取值方法
    
    var name = localStorage[“name”]
    
    var name= localStorage.name
    
    var name= localStorage.getItem(“name”);
    
    //这三种获取值方式是一样的;
    
    localStorage清除特定值方法
    
    //清除name的值
    
    localStorage.removeItem(“name”);
    
    localStorage.name=”;
    
    localStorage清除所有值方法
    
    localStorage.clear()
    
    localStorage只能存储字符串,如果需要存储对象,首先要转化为字符串。利用JSON.stringify();
    
    var person = {name:”vanida”,”sex”:”girl”,”age”:25};
    
    localStorage.setItem(“person”,JSON.stringify(person));
    
    // localStorage.person=”{“name”:”vanida”,”sex”:”girl”,”age”:25}” 


    注意:JSON.stringify()中不要忘了“i”,stringify而不是stringfy!

    然后取出person的对象你可以用JSON.parse();

    person = JSON.parse(localStorage.getItem(“person”));

    网上参考资料较多,不再一一备注来源,若有侵权,联系614506425@qq.com,我会尽快删除。

  • 相关阅读:
    Bootstrap里的文件分别代表什么意思及其引用方法
    selenium alert JS弹窗问题处理
    Selenium爬取元素定位
    mysql 启动提示:错误2系统找不到指定文件
    团体程序设计天梯赛-练习集(一)(string.find()、string.erase()、string.insert()、map容器、L1-002 (*)、L1-005、L1-063、L1-058、L1-054 (*)、L1-003 )
    PTA基础编程题目集(四)(直接插入排序、希尔排序、大数阶乘、6-10 阶乘计算升级版、6-11 求自定类型元素序列的中位数)
    PTA基础编程题目集(三)(7-29 删除字符串中的子串 、7-26 单词长度、6-7 统计某类完全平方数)
    PTA基础编程题目集(二)(输入带空格字符串,字符数组、7-28 猴子选大王(*)、7-30 字符串的冒泡排序、7-31 字符串循环左移 、7-1 厘米换算英尺英寸、7-35 有理数均值(*))
    PTA基础编程题目集(一)(pow函数用法,7-13 日K蜡烛图、7-18 二分法求多项式单根(*))
    水题
  • 原文地址:https://www.cnblogs.com/xiaoshen666/p/10638231.html
Copyright © 2011-2022 走看看