Web开发中关于在cookie中的存取数据

微信小程序开发需要分前端后端吗
微信公众号前端开发代码
微信 前端开发

先来说说cookie在哪:
web网站在客户端存储数据有三种形式:1. Cookie 2. hidden(隐藏域) 3.QueryString
在服务器端有:1. Session 2. Application 3. database 4. caching(缓存)

    需要制作的是一个查成绩的app,首先需要一个登陆页面,需要用户名和密码登陆访问接口,接口会返回一个session值,而**这个session值就是能唯一标识此次登陆的关键,相当于一把钥匙,可以开启其他功能模块接口的钥匙**;比如访问成绩查询接口,就需要向后台传session值。

那么问题来了:如何将登陆页面获取到的session值使用到成绩查询页面?

其实只要将登陆获取到的session值存到浏览器cookie中即可,在之后的功能模块需要用到session时,从浏览器cookie中再获取session即可。

关于cookie的存、取、删除:

cookie添加:
html 代码

function addCookie(name, value, days, path) {
    /**添加设置cookie**/
    var name = escape(name)
    var value = escape(value)
    var expires = new Date()
    expires.setTime(expires.getTime() + days * 3600000 * 24)
    //path=/,表示cookie能在整个网站下使用,path=/temp,表示cookie只能在temp目录下使用
    path = path == ” ? ” : ‘;path=’ + path
    //GMT(Greenwich Mean Time)是格林尼治平时,现在的标准时间,协调世界时是UTC
    //参数days只能是数字型
    var _expires =
        typeof days == ‘string’ ? ” : ‘;expires=’ + expires.toUTCString()
    document.cookie = name + ‘=’ + value + _expires + path
}

由于cookie是键值对存储, 因此存储方式例如:userName = “Jenny” 。解析函数中的四个参数:name—键名;value—键值;days—cookie失效时间;path—路径;需要将session存入cookie时只需要调用函数并写入参数。addCookie(“session”,session,7,”/”);

cookie中取值:
html 代码

function getCookieValue(name) {
    /**获取cookie的值,根据cookie的键获取值**/
    //用处理字符串的方式查找到key对应value
    var name = escape(name)
    //读cookie属性,这将返回文档的所有cookie
    var allcookies = document.cookie
    //查找名为name的cookie的开始位置
    name += ‘=’
    var pos = allcookies.indexOf(name)
    //如果找到了具有该名字的cookie,那么提取并使用它的值
    if (pos != -1) {
        //如果pos值为-1则说明搜索”version=”失败
        var start = pos + name.length //cookie值开始的位置
        var end = allcookies.indexOf(‘;’, start) //从cookie值开始的位置起搜索第一个”;”的位置,即cookie值结尾的位置
        if (end == -1) end = allcookies.length //如果end值为-1说明cookie列表里只有一个cookie
        var value = allcookies.substring(start, end) //提取cookie的值
        return value //对它解码
    } else {
        //搜索失败,返回空字符串
        return ”
    }
}

从cookie中取值的原理也是通过cookie键值对的存储原理来取值,将需要获取数据的键名当做参数调用函数即可。
var session=getCookieValue(‘session’);
删除cookie:
html 代码

function deleteCookie(name, path) {
    var name = escape(name)
    var expires = new Date(0)
    path = path == ” ? ” : ‘;path=’ + path
    document.cookie = name + ‘=’ + ‘;expires=’ + expires.toUTCString() + path
}

根据cookie的键,删除cookie,其实就是设置其失效,将参数传入调用函数。一般用于操作完成需要退出时。

此次使用只是以session为例,来讲解cookie的使用,其实在开发中不仅仅session需要存入cookie,更多的一些跨页面但访问数据需要的值都可以存入cookie,需要用到的时候直接从cookie中读取,会快捷方便。

微信公众号前端开发sdk
微信开发前端接口文档
前端 微信小程序开发
赞(0)
前端开发者 » Web开发中关于在cookie中的存取数据
64K

评论 抢沙发

评论前必须登录!