zoukankan      html  css  js  c++  java
  • 原生js获取和设置cookie

    1、document.cookie

    可以获取得到cookie字符串,cookie都是键值对形式,所以得到的字符串为key=value形式,多个键值对之间用分号(;)拼接

    存储在cookie中value值,一般需要适用escape()函数对字符串进行编码。

    注:escape()不会对ASCII中的字母和数字以及 * @ - _ + . / 。进行编码,其他都会被替换成16进制的转义序列。unescape()可进行解码。

    console.log(escape('测试123'))    //"%u6D4B%u8BD5123"

    2、创建cookie

    document.cookie=name+'='+escape(value)+';expires='+expiedDate.toGMTString()

    name:自定义cookie的名称,value为对应的值,若需要设置过期时间,可以加上';expires='+expiedDate.toGMTString(),若无过期时间限制可省略expires

    3、查询cookie

    根据name值查询对应的value值

        function getCookie(name) {
        // var cookieStr=document.cookie;
         var cookieStr='zml=123;cc=90ddd;oo=oplm9';
            //判断是否有cookie值
            if (cookieStr.length) {
                //判断是否存在name值
                if (cookieStr.indexOf(name) !== -1) {
                    var start_index = cookieStr.indexOf(name) + name.length + 1;
                    var end_index = cookieStr.indexOf(';', start_index);
                    if(end_index===-1){//若是最后一对cookie则不以;分号结尾
                    end_index=cookieStr.length;
                    }
                    return cookieStr.substring(start_index, end_index);
                }
            }
            return '';
        }

    4、cookies,sessionStorage 和 localStorage 的区别

    html5中的Web Storage包括了两种存储方式sessionStorage和localStorage。和cookie相似,都是保存在浏览器端,但区别是它是为了更大容量存储设计的。

    a、cookie数据始终在同源的http请求中携带,即使不使用,也在浏览器和服务器之间来回传递,会造成带宽的浪费。而sessionStorage和localStorage不会自动把数据发送给服务器,仅在本地存储。

    b、存储大小不同,cookie数据不能超过4k,只适合保存很小的数据。sessionStorage和localStorage虽然也有存储大小的限制,但比cookie大很多,可以达到5M或者更多。

    c、数据有效期不同,cookie可以设置过期时间,sessionStorage是会话级的数据,浏览器关闭即清除,localStorage是永久性的数据,除非手动清除,否则一旦设置都一直存在。

    d、sessionStorage不跨窗口,在另外一个窗口打开sessionStorage就不存在了,它只在当前窗口有效,而cookie和localStorage都是跨窗口的,即使浏览器的窗口关闭,这两个值还是存在的。

    f、Web Storage的api接口使用更加方便。例如: setItem,getItem,removeItem,clear等方法,不像cookie需要开发者自己封装setCookie,getCookie。

  • 相关阅读:
    [转]relative、absolute和float
    CSS 布局属性(display,float,clear,visibility,overflow,overflow-x,overflow-y)
    CSS 块状元素和内联元素
    CSS定位
    CSS实例
    jQuery简单实例
    [转]几种常见SQL分页方式
    MyBatis Mapper XML 文件
    MyBatis XML 映射配置文件
    MyBatis 入门
  • 原文地址:https://www.cnblogs.com/zml-mary/p/9015061.html
Copyright © 2011-2022 走看看