1.首先简单总结下cookie
cookie:可以做会话跟踪
  特点:
     1、大小限制(不能超过4k)
     2、每个域下cookie不能超过50个
     3、有效期(和设定时间有关),过了有效期cookie会自动删除
     4、cookie读取(只能访问同一个域名下的cookie)(域的限制)
     5、没有设置存储时间的cookie是临时cookie,浏览器关闭自动删除
     6、cookie值只能是字符串
     7、cookie访问:子能访问父的cookie   但是父不能访问子的cookie;
 
1.1   cookie的存储
实例讲解: 
   基于cookie存储的注册功能:
    存储cookie:
reg.onclick = function(){
         //将用户名和密码以对象的形式存储
         var json = {
             "username" : uname.value,
             "password" : upwd.value
         }
         //开始存储cookie
         document.cookie =  "userinfo="+JSON.stringify(json) ;
         //跳转到登录页面
         location.href = "../b/login.html";
    }
 
    获取cookie:
//页面加载后 获取cookie数据
    window.onload = function(){
         //取出cookie数据
         var str =  document.cookie;//userinfo={"username":"admin","password":"111"}
         var _json =  JSON.parse(str.split("=")[1]);//'{"username":"admin","password":"111"}'
         log.onclick = function(){
             //如果用户输入的用户名和密码与cookie中的用户名和密码相等  提示登录成功
             if( uname.value == _json.username &&  upwd.value==_json.password ){
                 alert("登录成功");
             }else{
                 alert("用户名或密码错误");
             }
         }
    }
 
娥姐经典案例: 
    cookie用法之简易购物车 
存储数据:
var oUl = document.querySelector("ul");
    var _json = {};//存一个对象数据
    var arr = [];//存好多个对象
    var pid = 1;//商品编号
    //使用委托为每一个 加入购物车按钮 添加单击事件
    oUl.addEventListener("click",(e)=>{
         var e = e || event;
         var target = e.target || e.srcElement;
         if( target.className === "addMe" ){
             //将当前点击的商品数据存入到一个对象中
             _json = {
                 "pid" : pid++,
                 "pname" :  target.parentNode.parentNode.children[0].innerHTML,
                 "price" :  target.parentNode.parentNode.children[1].innerHTML
             }
             
             //将对象存入到数组中
             arr.push( _json );
             //将数组存入到cookie中
             document.cookie = "prolist=" +  JSON.stringify(arr);
         }
    })
取出:
window.onload = function(){
         //页面加载取出数据
         var str = document.cookie;
         //拆分字符串得到商品数据 数组
         var arr = JSON.parse(str.split("=")[1]);
         var sum = 0;//累加金额
         var str = "";
         //遍历数组中的数据 将数据显示到页面上
         for( var i = 0 ; i < arr.length ; i++ ){
             var pro = arr[i];
             sum += Number(pro.price);
             str +=  `<li><span>${pro.pid}</span><span>${pro.pname}</span><span>${pro.price}</span></li>`;
         }
         demo.innerHTML += str;
         
         //点击按钮  显示金额
         btn.onclick = function(){
             t.value = sum;
         }
    }
2.localstorage   本地存储
基本用法: 存取改删
//存数据(增加数据)
      btnSave.onclick = function(){
            //定义一个localStorage
            var storage = window.localStorage;
            //向storage中存储数据
            //方式一:
            storage.sname = "jack";
            //方式二:
            storage["age"] = 18;
            //方式三:
            storage.setItem( "tel" , "132xxx" );
      }
      //取数据
      btnGet.onclick = function(){
            //定义一个localStorage
            var storage = window.localStorage;
            //取出localStorage中的数据  根据键取值
            console.log( storage.sname , storage["age"] ,  storage.getItem("tel") );
      }
      
      //改数据
      btnUpt.onclick = function(){
            //定义一个localStorage
            var storage = window.localStorage;
            //向storage中存储数据
            //方式一:
            storage.sname = "lily";
            //方式二:
            storage["age"] = 18;
            //方式三:
            storage.setItem( "tel" , "156xxx" );
      }
      //删数据  :根据键删除
      btnDel.onclick = function(){
            //定义一个localStorage
            var storage = window.localStorage;
            //根据键删除某个数据
            //storage.removeItem("tel");
            //清空
            storage.clear();
      }

回顾js中的cookie/localstorage的更多相关文章

  1. 【原创】js中利用cookie实现记住密码功能

    在登录界面添加记住密码功能,我首先想到的是在java后台中调用cookie存放账号密码,大致如下: HttpServletRequest request HttpServletResponse res ...

  2. 在node.js中使用COOKIE

    node.js中如何向客户端发送COOKIE呢?有如下两个方案: 一.使用response.writeHead,代码示例: //设置过期时间为一分钟 var today = new Date(); v ...

  3. js中的cookie使用

    在网上找到的资料,收藏一下 function getCookies(name) { var arr = document.cookie.match(new RegExp("(^| )&quo ...

  4. js 中的cookie

    根据智能社31cookie基础与应用总结, cookie的特性: 1.同一个网站,共用一套cookie,实际上是根据域名来区分的. 如t.sina.com.cn ,和weibo.com这两个都是新浪微 ...

  5. 在jsp页面的js中使用Cookie的原理介绍以及相应方法的代码

    1. 设置cookie 1.1 每个cookie都是一个名/值对,可以把下面这样一个字符串赋值给document.cookie: document.cookie="user_Id=828&q ...

  6. js中对cookie的操作及json数据与cookie结合的用法

    cookie的使用 添加cookie 添加cookie:document.cookie = “key=value”; // 一次写入一个键值对 document.cookie = 'test1=hel ...

  7. js中的cookie

    cookie就是一个存放数据的东西,存储量很小4kb,存放在客户端上和应用设备上. 应用场景 用户注册,用户登录,购物车. Chrome浏览器在计算机中存放cookie的位置 C:\Users\Adm ...

  8. js中实现cookie的增删改查(document.cookie的使用详情)

    一.设置cookie的值 1.每个cookie都是一个名称/值对,名称/值对用等号连接,并将该名称/值对赋值给document.cookie即可.如:document.cookie="id= ...

  9. js中的cookie使用和vue-cookie的使用

    在HTTP协议的定义中,采用了一种机制来记录客户端和服务器端交互的信息,这种机制被称为cookie,cookie规范定义了服务器和客户端交互信息的格式.生存期.使用范围.安全性. 在JavaScrip ...

随机推荐

  1. [USACO09FEB]股票市场Stock Market

    题意简述: 给定⼀个DDD天的SSS只股票价格矩阵,以及初始资⾦ MMM:每次买股票只能买某个股票价格的整数倍,可以不花钱,约定获利不超过500000500000500000.最⼤化你的 总获利. 题 ...

  2. Linux AUFS 文件系统

    AUFS 的英文全称为 Advanced Mult-Layered Unification Filesystem,曾经是 Another Mult-Layered Unification Filesy ...

  3. 《C# 语言学习笔记》——目录

    C# 简介 变量和表达式 流程控制 3.1 布尔逻辑 3.2 goto语句 3.3 分支 3.4 循环 变量的更多内容 4.1 类型转换 4.2 复杂的变量类型 4.3 字符串的处理 函数 5.1 定 ...

  4. JS制作简易的考试答题管理系统

    答题卡系统: 网站运行效果 代码区域: HTML 代码: <style type="text/css"> body { font-size: 30px; backgro ...

  5. javascript基本特点,组成和应用

    JavaScript 是一种基于客户端浏览器.面向(基于)对象和事件驱动式的网页脚本语言. 1. 基于客户端浏览器:静态语言,跨平台: 2. 面向(基于)对象:本身是没有类class和对象这个概念,但 ...

  6. IDEA:No SLF4J providers were found.

    如果您是用IDEA 的 maven 写的 将slf4j的导入包 更改 为下列代码 <dependency> <groupId>org.slf4j</groupId> ...

  7. 脱壳0-FSG壳-详细流程

    目录 @ 1 拿到当前加壳程序,用exeinfo/PeID 看一下信息 可以看出是很老的壳FSG. 分析: ​ Entry Point : 000000154,熟悉PE结构的知道,入口点(代码)揉进P ...

  8. Ubuntu 16.04 LTS设置屏幕分辨率并永久保存所设置的分辨率

    一.问题: 1.新装完Ubuntu 16.04 LTS后,进入系统打开命令行窗口,界面的分辨率显示是最小的: 2.进入System settings-->Displays 设置屏幕分辨率 显示& ...

  9. C#async/await心得

    结论: 异步方法的方法签名要加 async,否则就算返回 Task 也是普通方法. 调用异步方法,可以加 await 或不加 await,两者方式都是马上返回,不加 await 得到的是 Task 对 ...

  10. 【Android】ViewModel+LiveData:更加直接地控制视图的方式

    目录 LiveData 前言 使用ViewModel+LiveData LiveData 前言   ViewModel通过将UI data保存在ViewModel类实例的内部,从而大大地将MVC中的 ...