RSS
热门关键字:  数据挖掘  数据仓库  商业智能  人工智能  搜索引擎
当前位置 :| 首页>编程技术>脚本语言>

Javascript高级教程-复杂的cookies读取

来源: 作者:unkonwn 时间:2004-12-02 点击:

如果你想让你的cookie包含更多的信息,你可以将cookie的值
设得很长.假设我们要保存某人的姓名,年龄和电话号码: 数据挖掘研究院

var the_cookie = "username:thau/age:older than the hills/phone:411";

document.cookie="my_happy_cookie=" + escape(the_cookie);

我用斜杠/来分割属性名称,用分号区别不同的属性名称及其
属性值.斜杠/和分号是不是绝对的选择,你可以使用任何的
字符做分割的标志:

var the_cookie = "username=thau&age=older than the hills&phone=
411";

document.cookie="my_happy_cookie=" + escape(the_cookie);

你可以自行选择限位器.只要你注意在对cookie解码时也使用
同样的限位器即可.

设置复杂的cookie时方法要复杂一些.我们建议你使用相关数
组来保存所有的信息,假设我们将该cookie保存到某人的硬
盘上:

my_happy_cookie=username:thau/age:older than the hills/phone:411


你可以将这些信息放到一个方便的相关数组中:

function readTheCookie(the_info)

{

    // load the cookie into a variable and unescape it

    var the_cookie = document.cookie;


    var the_cookie = unescape(the_cookie);

    // separate the values from the cookie name

    var broken_cookie = the_cookie.split("=");

    var the_values = broken_cookie[1];

    // break each name:value pair into an array

    var separated_values = the_values.split("/");

    // loop through the list of name:values and load
    // up the associate array

    var property_value = "";

    for (loop = 0; loop


如果在你的JavaScript中有上面这段代码,你可以这样调用它:

var cookie_information = new Array();

readTheCookie(cookie_information);

然后你就会正确设置了cookie_information["username"],
cookie_information["age"], 和cookie_information["phone"].

这些看起来可能有些难以理解,但实际上并不是很难.我们一
步步分析: 数据挖掘研究院
var the_cookie = document.cookie;
将cookie赋值给一个变量.
var the_cookie = unescape(the_cookie);
取消escape()的编码
var broken_cookie = the_cookie.split("=");
var the_values = broken_cookie[1];
使the_values等同于username:thau/age:older than the hills/phone:411.
var separated_values = the_values.split("/");
生成一个包含3个元素名为separated_values的数组:
separated_values[0] = "username:thau"
separated_values[1] = "age:older than the hills"
separated_values[2] = "phone:411"

for (loop = 0; loop
循环调用separated_values的3个元素.
property_value = separated_values[loop];
提取当前的name:value配对,第1个配对是username:thau.
var broken_info = property_value.split(":");
将该配对分成名为broken_info的数组中的两个元素:
broken_info[0] = "username"
broken_info[1] = "thau"

var the_property = broken_info[0];
第1次经过这个循环是,the_property是"username"
var the_value = broken_info[1];

数据挖掘研究院


其值是"thau"
the_info[the_property] = the_value;
这里开始发回相关数组的便捷功能.它使得the_info
["username"] = "thau",所以现在当你需要从cookie中查找
username时你只需:
var the_name = the_info["username"];

每次经过这个循环时,就在the_info中加入一个新元素.循
环到最后时, the_info["username"] = "thau", the_info
["age"] = "old as the hills" ,而 the_info["phone"] = 411.

有些烦琐,但是当你需要从cookie中输出入大量信息时这是一
个很好的办法.当然还有别的办法.

数据挖掘研究院

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
匿名?