研究js的cookie操作

【本人是个原生爱好者,虽然市面上有现成的可以用,但俺不喜欢(不过参考还是可以的);于是自己开始手写,达到知其然至所以然,现在用的很多工具都自己写的而且是经常在用的哦^ ^】

学习js操作cookie,可自己开发一个cookie读取存储功能,你也可以! 很久以前想把一些数据存储在客户端,想了很久不知道怎么写入cookie,实在因为赶进度就用了别人写的,可是让我头疼的是有时候会报错,我也很无奈很烦啊,因为自己也不强 哈哈。。。。。。总结一下:还得自己要懂、要会、要明白原理才行。

核心:document.cookie

eg:

1、设置cookie:document.cookie = "要存储的字符串,字符串的规律可自由定制,也可以按key=val;key1=val1格式来";//这是cookie存储默认格式

2、读取cookie:var cook = document.cookie;

3、解析 cook变量取得你需要的值。

以下方法提供参考:

    //代码已优化,哒哒哒哒哒哒哒哒哒哒哒哒~~~~~~
    /**
     * 设置cookie
     **/
    var setCookie = function(key, val){
        document.cookie = key+'='+encodeURIComponent(val);
        return true;
    };

    /**
     * 获取cookie[仅返回有效数据]
     **/
    var getCookie = function(key){
        //假设存储格式是:key=val;key1=val1
        var cook_arr = document.cookie.split(';');

        //验证一下,没有值就返回false,不进入下一个流程
        if(!cook_arr)return false;

        var res_arr = [];//存储解析结果
        for(var i=0; i<cook_arr.length; i++){
            //这里要再解析一次
            var arr = cook_arr[i].split('=');
            //这里表示满足key=val格式
            if(arr && arr.length==2)res_arr.push ([arr[0].trim(),decodeURIComponent(arr[1].trim())]);//存储
        }
        if(key){
            for(var j=0; j<res_arr.length; j++){
                if(key == res_arr[j][0])return res_arr[j][1];//返回正确val
            }
        }else{
            return res_arr;//key不存在就返回所有,有时候还是想看看所有的值
        }
        //默认返回false 表示没有取到值
        return false;
    };

//其它待续 

//todo.......

猜你喜欢

转载自blog.csdn.net/qq_15941409/article/details/81699237