localStroage的用法

Cookie

每个域名存储量比较小(各浏览器不同,大致4K)
所有域名的存储量有限制(各浏览器不同,大致4K)
有个数限制(各浏览器不同)
会随请求发送到服务器

LocalStorage

永久存储
单个域名存储量比较大(推荐5MB,各浏览器不同)
总体数量无限制浏览器关闭不清除。页面之间可以实现共享。同一域名下实现共享只要不清除。可以在本地永久储存。

SessionStorage

只在 Session 内有效
存储量更大(推荐没有限制,但是实际上各浏览器也不同)浏览器关闭则清除。不同的窗口之间不能共享。同一域名下实现共享

三者异同点:
特性 Cookie localStorage sessionStorage
数据的生命期 一般由服务器生成,可设置失效时间。如果在浏览器端生成Cookie,默认是关闭浏览器后失效 除非被清除,否则永久保存 仅在当前会话下有效,关闭页面或浏览器后被清除
存放数据大小 4K左右 一般为5MB
与服务器端通信 每次都会携带在HTTP头中,如果使用cookie保存过多数据会带来性能问题 仅在客户端(即浏览器)中保存,不参与和服务器的通信
易用性 需要程序员自己封装,源生的Cookie接口不友好 源生接口可以接受,亦可再次封装来对Object和Array有更好的支持
示例代码一:
var body = document.body;
        var pcolor = document.querySelector(‘p‘);
        var clear = document.querySelector(‘#clear‘);

        var bgcolorForm = document.querySelector(‘#bgcolor‘);
        var colorFrom = document.querySelector(‘#fcolor‘);

        if(!localStorage.getItem(‘bgcolor‘)){
            populateStorage();
        }else{
            setStyle();
        }

        function populateStorage(){
            localStorage.setItem(‘bgcolor‘,bgcolorForm.value);
            localStorage.setItem(‘color‘,colorFrom.value);
            setStyle();
        }
        function setStyle(){
            var currentBgColor = localStorage.getItem(‘bgcolor‘);
            var currentColor = localStorage.getItem(‘color‘);

            bgcolorForm.value = currentBgColor;
            colorFrom.value = currentColor;

            body.style.backgroundColor = currentBgColor;
            pcolor.style.color = currentColor;
        }
        function clearFn(){
            localStorage.clear();
        }
        bgcolorForm.addEventListener(‘change‘,populateStorage,false);
        colorFrom.addEventListener(‘change‘,populateStorage,false);
        clear.addEventListener(‘click‘,clearFn,false);

示例代码二:

function unlock(i, station_name_cn, station_name_en) {
        var locking = localStorage.getItem(‘lock‘);
        if (locking && locking == 1) {
            localStorage.setItem("lock", i);
            // console.log(localStorage.getItem(‘lock‘));
            window.location.href = ‘unlock.html?‘ + station_name_cn + ‘-‘ + station_name_en;
        }
    }

if (station_id > 1) {
            if (!localStorage.getItem(‘lock‘) || localStorage.getItem(‘lock‘) != station_id) {
                localStorage.setItem("lock", 1);
            }
            // unlock(station_id,station_name_cn,station_name_en);
        }

参考资料:

MDN:https://developer.mozilla.org/zh-CN/docs/Web/API/Web_Storage_API

详说 Cookie, LocalStorage 与 SessionStorage

HTML5本地存储localStorage和sessionStorage…

js对cookie的操作…

 
时间: 2024-11-05 22:41:22

localStroage的用法的相关文章

快速理解webStroage

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> <fieldset id=""> <legend>sessionStorage</legend> <input type="text" na

Web Storage API : LocalStroage

这是一篇详细介绍详细介绍详细介绍_(:з」∠)_ 背景: 当你访问一个页面,并不是丢到服务器,等待用户访问就可以了的.从输入网址到显示网页的全过程,可以参考这里 简单来说,在输入url按下回车键后,首先会进行浏览器查找域名的IP地址,然后浏览器给web服务器发送一个HTTP请求,这是如果浏览器有重定向会跟踪重定向地址.服务器“处理”请求,浏览器发送获取嵌入在HTML中的对象,浏览器开始显示HTML会注意到需要获取其他地址内容的标签.这时,浏览器会发送一个获取请求来重新获得这些文件.如以下几种文件

js中获取时间new date()的用法

js中获取时间new date()的用法 获取时间:   var myDate = new Date();//获取系统当前时间 获取特定格式的时间: 1 myDate.getYear(); //获取当前年份(2位) 2 myDate.getFullYear(); //获取完整的年份(4位,1970-????) 3 myDate.getMonth(); //获取当前月份(0-11,0代表1月) 4 myDate.getDate(); //获取当前日(1-31) 5 myDate.getDay();

20.5 Shell脚本中的逻辑判断;20.6 文件目录属性判断;20.7 if特殊用法;20.8 20.9 cace判断(上下)

扩展: select用法 http://www.apelearn.com/bbs/thread-7950-1-1.html 20.5 Shell脚本中的逻辑判断 格式1:if 条件 ; then 语句; fi 1. 创建if1.sh测试脚本: [[email protected] ~]# vi if1.sh a=5,如果a大于3,满足这个条件,显示ok 添加内容: #!/bin/bash a=5 if [ $a -gt 3 ] then echo ok fi 2. 执行if1.sh脚本: [[e

20.1 Shell脚本介绍;20.2 Shell脚本结构和执行;20.3 date命令用法;20.4 Shell脚本中的变量

20.1 Shell脚本介绍 1. shell是一种脚本语言 aming_linux blog.lishiming.net 2. 可以使用逻辑判断.循环等语法 3. 可以自定义函数 4. shell是系统命令的集合 5. shell脚本可以实现自动化运维,能大大增加我们的运维效率 20.2 Shell脚本结构和执行 1. 开头(首行)需要加: #!/bin/bash 2. 以#开头的行作为解释说明: 3. 脚本的名字以.sh结尾,用于区分这是一个shell脚本 4. 执行.sh脚本方法有两种:

shell 中seq的用法 echo -n用法

用法:seq [选项]... 尾数 或:seq [选项]... 首数 尾数 或:seq [选项]... 首数 增量 尾数 从1循环到100的两种方法(bash 其它的shell没试过)for x in `seq 1 100`;do echo $x;donefor x in {1..100};do echo $x;done echo -n 不换行输出 $echo -n "123" $echo "456" 最终输出 123456 echo -e 处理特殊字符 若字符串中

sudo的用法

su -l user -C 'COMMAND' 是用user这个用户执行命令 我们一般使用sudo 这个命令 sudo [-u] user COMMAND sudo [-k] COMMAND 清除此前用户的密码. sudo的配置文件/etc/sudoers 配置项为 users    hosts=(runas)    commands users:可以是一个用户的名称也可以是一个组,也可以是一个别名 username #UID user_alias 用户别名的用法 User_Alias NETA

几招学会 Python 3 中 PyMongo 的用法

本文和大家分享的是Python3下MongoDB的存储操作相关内容,在看本文之前请确保你已经安装好了MongoDB并启动了其服务,另外安装好了Python的PyMongo库.下面进入正题,一起来看看吧,希望对大家学习Python3有所帮助. 连接MongoDB 连接MongoDB我们需要使用PyMongo库里面的MongoClient,一般来说传入MongoDB的IP及端口即可,第一个参数为地址host,第二个参数为端口port,端口如果不传默认是27017. import pymongo cl

11 css中分组选择符的用法

<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <style type="text/css"> h1,span{color:red;} a:hover{color:#2EE926;} /*分组选择符的用法*/ </style> </head> <body&