首页 > JS专栏 > JS设置和读取cookie
2015
07-23

JS设置和读取cookie

cookie 与 session 是网页开发中常用的信息存储方式。Cookie是在客户端开辟的一块可存储用户信息的地方;Session是在服务器内存中开辟的一块存储用户信息的地方.

JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的。

而cookie是运行在客户端的,所以可以用JS来设置cookie.

假设有这样一种情况,在某个用例流程中,由A页面跳至B页面,若在A页面中采用JS用变量temp保存了某一变量的值,在B页面的时候,同样需要使用JS来引用temp的变量值,对于JS中的全局变量或者静态变量的生命周期是有限的,当发生页面跳转或者页面关闭的时候,这些变量的值会重新载入,即没有达到保存的效果。解决这个问题的最好的方案是采用cookie来保存该变量的值,那么如何来设置和读取cookie呢?

首先需要稍微了解一下cookie的结构,简单地说:cookie是以键值对的形式保存的,即key=value的格式。各个cookie之间一般是以“;”分隔。

JS设置cookie:

document.cookie="name="+username;

例如设置名为“number”,值为10的cookie:

document.cookie="number="+10;

JS读取cookie:

var cookie_pos = allcookies.indexOf('number');  //cookie名为number
if (cookie_pos != -1) {
cookie_pos += 'number'.length + 1;//cookie名为number
var cookie_end = allcookies.indexOf(";", cookie_pos);
if (cookie_end == -1) {
    cookie_end = allcookies.length;
}
var number = parseInt(unescape(allcookies.substring(cookie_pos, cookie_end)))+1;
}