本地及会话存储 cookie和本地及会话存储的异同? 观察者设计模式

103 阅读2分钟

本地及会话存储

localStorage 等价于长生命周期的cookie
sessionStorage 等价于会话级别的cookie
​
getItem(key):获取指定key所存储的value值
key(index)方法:返回列表中对应索引的key值
length属性:返回key/value队列的长度
removeItem(key)方法:从Storage中删除一个对应的键值对。
setItem(key,value)方法:将value存储到key指定的字段。
clear()方法:移除所有的内容
​
增改
    a. setItem(key,value);
        localStorage.setItem("name","老王");
        sessionStorage.setItem("name","老王");
    b.点运算符
        localStorage.age = 82;
    c.下标法
        localStorage["gender"] = 'FM';
​
查
    a.getItem(key):返回key对应的value
        console.log(localStorage.getItem("name"));
​
    b.点运算符
        console.log(localStorage.age);
​
    c.下标法
        console.log(localStorage["gender"]);
​
删
    removeItem(key):删除key对应的键值对
        localStorage.removeItem("name");
        localStorage.clear();
​
--------------------------------
遍历所有的key
    for(let i=0; i<localStorage.length; i++){
        console.log(localStorage.getItem(localStorage.key(i)));
    }
    let data = '{"name":"佩洛西","age":82}';
    localStorage.setItem("data",data);
    let json = JSON.parse(localStorage.getItem("data"));
    console.log(json);
​
cookie和本地及会话存储的异同?
    数据的生命周期:
        cookie:一般由服务器生成,可设置失效时间。如果在浏览器端生成Cookie,默认是关闭浏览器后失效
        localStorage:除非被清除,否则永久保存;
        sessionStorage:仅在当前会话下有效,关闭页面或浏览器后被清除;
    存放数据的大小:
        cookie:4k左右
        本地及会话存储:一般为5MB;
    与服务器端通信:
        cookie:每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题
        本地及会话存储;仅在客户端(即浏览器)中保存,不参与和服务器的通信;
    易用性:
        cookie;需要程序员自己封装,源生的cookie接口不友好;
        本地及会话存储;源生接口可以接受,亦可再次封装来对ObjectArray有更好的支持;

观察者设计模式

观察者订阅者模式设计的思想
两个角度
    a.观察者,订阅者
    b.发布者,主题
核心思想,
    订阅了主题的观察者,可收到主题发送的消息
    在订阅中写函数定义,观察者中写函数调用,传递参数(消息)给订阅者

选择器插件

方法在调用时,和类对象的属性毫无关系
换而言之,该方法没有用到this
静态方法
    被static 修饰的方法称为静态方法
    静态方法通过类名调用
​
凡是和offset有关的属性,元素必须在页面显示,才能使用

插件的使用者和设计者

设计者:
    1.设计功能模块
    2.提供使用手册(api)
使用者
    1.引入插件
    2.按照设计文档使用插件
    3.提供插口(HTML,CSS)