JavaScript进阶教程(第二课续)第1/2页

现在你已经掌握了先进的字符串处理和相关数组概念,该是我们打开神奇的cookie魔瓶的时候了.cookie是记录访问你的站点的人的信息,它其实驻留在用户的硬盘上,即使用户已经离开你的站点,cookie在用户的硬盘上仍然存在,如果该用户再次返回你的站点,则该cookie就会被一起发回到你的服务器中,便于你统计和处理重复到访者的信息.

下面我们看一看一个cookie应用的典型例子,我们在一个网页中设置cookie,然后通过别的网页读取它.在使用该例子的时候,想想如果没有cookie,你如何做到这一点.

由于cookies牵扯到向用户的硬盘写盘和读取信息,所以就涉及一个保密性的问题.cookie有其作用范围以及内在的局限性.其最重要的局限性在于:不是每个人的浏览器都欢迎cookies.即便是用户的浏览器欢迎cookies,但用户也有可能拒绝cookies的访问(大部分人还是欢迎的)每个域名只分配20个cookies,所以要节省着什么它们.Cookies不得大于4 KB,当然4,000字节的容量是足够的了.

了解了这些局限性之后我们开始学习如何设置cookies.设置一个基本的cookie很容易.你所需做的只是在一个cookie_name=value
表单中生成一个字符串,然后设置document.cookie属性.唯一的技巧:cookie值中不能有空格,逗号或分号.好在你无需担心这些问题,因为有一系列的函数可以帮你对cookies属性编码和解码:

escape()和unescape().

下面的简单例子中将你的姓名保存为一个cookie:

function setCookie()
    {
        var the_name = prompt("What's your name?","");

var the_cookie = "wm_javascript=username:" + escape(the_name);

document.cookie = the_cookie;

alert("Thanks, now go to the next page.");
    }

函数中间的两行是关键:
    var the_cookie = "wm_javascript=username:" + escape (the_name);

如果我在提示框中输入了"dave thau",该行代码将生成一个字符串wm_javascript=username:dave%20thau.这就是说我将把一个名为wm_javascript的cookie保存到硬盘.该cookie的值是username:dave%20thau - 函数 escape()将"dave" 和"thau"之间的空格用%20做了替换.

当我们读取cookie时,我们寻找名为wm_javascript的cookie,然后提取username:dave%20thau,将其用 unescape()解码,去掉username:.

document.cookie = the_cookie;

cookie现在就设置好了,很简单.

一旦你在某用户的硬盘上设置了cookie,读取是件很容易的事.下面是读取cookie范例的代码:

function readCookie()
    {
        var the_cookie = document.cookie;
        var broken_cookie = the_cookie.split(":");
        var the_name = broken_cookie[1];
        var the_name = unescape(the_name);

alert("Your name is: " + the_name);
    }

第1行很重要.当你的浏览器打开一个网页时,它调用任何和该网页有关的cookie然后将其载入document.cookie属性.

读取cookie的技巧在于从中抽取出你需要的信息.注意在我们所设置的cookie是这样的:wm_javascript=username:dave%20thau.在该函数第1行之后的所有用于从该cookie中提取出用户名(username).

var broken_cookie = the_cookie.split(":"); 
    将cookie在分号处分割成两部分.

var the_name = broken_cookie[1]; 
    抓取分号后面的内容dave%20thau.

var the_name = unescape(the_name);
    取消函数escape()的编码替换.在本例中重新用空格替换了%20.

alert("Your name is: " + the_name); 
    显示你的姓名.

这个例子使用的cookie只保存了很少的信息:用户名,cookie最多可以保存多达4kb的信息。下一讲里我们讲要讲一个复杂的例子。

当前1/2页 12下一页阅读全文

(0)

相关推荐

  • JavaScript中split与join函数的进阶使用技巧

    Javascript拥有两个相当强大而且受开发者喜爱的函数:split 与join 俩对立的函数.这俩函数能让string与array两种类型互换,也就是数组能被序列化为字符串,反之亦然.我们能把这俩函数发挥得淋漓尽致.下面就来探索里面的一些有趣的应用, 首先介绍一下这两个函数: String.prototype.split(separator, limit) separator把字符串分割为数组,可选参数limit定义了生成数组的最大length. "85@@86@@53".spli

  • JavaScript进阶教程(第四课第一部分)

    在以前的课程中,我们学习了对文本和字符串的各种操作,今天我们专注于两种不同的数据类型:图象和对象.学完这一课,你将知道如何: 使用JavaScript来加速图象交换. 创建你自己的对象来使脚本易于理解. 使用关联数组来快速存取脚本中的每一个对象. 使用JavaScript做图象变换的一个主要问题是,它直到需要换图时才去告诉浏览器下载那张图象.如果你有一张大的图象,想在鼠标滑过一副图象时调出来,浏览器得临时下载这张图,这可能会花一定时间从而使滑动效果大打折扣. 如果你的连接速度较慢,而你要调入的是

  • JavaScript进阶教程(第二课)第1/3页

    今天我们将学习一项很有用而且很有趣的内容:cookies - 这是用来记录访问过你的网页的人的信息.利用Cookies你能记录访问者的姓名,并且在该访问者再次访问你的站点时向他发出热情的欢迎信息.你还可以利用cookie记忆用户端的特点 - 如果访问者的所接入的网线的速度慢,cookie可以自动告诉你在给其发送网页的时候只发送尽可能少的图片内容. 只要你在合理的范围内使用cookies(不要用它探询用户的个人隐私),cookies还是相当实用得.所以我要向你们介绍cookies的工作原理,但是在

  • JavaScript DOM进阶方法

    DOM自身存在很多类型,在上一章中有介绍,比如Element类型:表示的是元素节点;再比如Text类型;表示的是文本节点; 一 DOM类型 类型名                        说明 Node                 表示所有类型值的统一接口,IE不支持; Document             表示文档类型; Element              表示元素节点类型; Text                 表示文本节点类型; Comment           

  • JavaScript进阶练习及简单实例分析

    当用户点击"统计"按钮时,在窗口中弹出文本框中出现次数最多的字符并显示其出现的次数 点击统计按钮时效果如图所示: 实现代码: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo

  • JavaScript进阶教程(第三课)第1/2页

    事件的定时以及浏览器的识别 随着我们所掌握的JavaScript日渐丰富,我们可以编制出越来越复杂的应用程序.上次的课程中我们学习了如何利用JavaScripts编写Cookies.今天我们将学习如何加入定时功能.给时间定时的能力在浏览器中非常有用,而在动态HTML应用中发挥更大的功用. 你可能会注意到动态HTML可以在页面中移动不同的内容.在JavaScript中将某个物体在屏幕中移动需要用到一个循环(loop),用循环的功能使物体随着时间推移移动.但是你如何告诉JavaScript将某个物体

  • JavaScript进阶教程(第一课)第1/3页

    欢迎您继续学习Javascript进阶教程.在此之前我们已经学习了Javascript初级教程.在这一阶段的学习中我们将继续学习在上次的教程中还没有来得及谈及的问题.我还将向你们展示Javascript的许多神奇功能,使你能够制作真正对多媒体应用程序.     以下是我们将涉及的内容:     给变量赋值     If-then语句     For和while循环     编写你自己的函数     打开及控制窗口     读写HTML 表单     应用数组     控制图片转换     如果这

  • JavaScript进阶教程(第三课第二部分)第1/2页

    要使定时器循环工作你需要写一个函数实现循环调用.这里是一个例子: var the_count = 0;    var the_timeout;    function doTimer()    {        window.document.timer_form.the_text.value = the_count;        the_count += 2;        the_timeout = setTimeout("doTimer();", 2000);    } 这里用

  • JavaScript进阶教程(第二课续)第1/2页

    现在你已经掌握了先进的字符串处理和相关数组概念,该是我们打开神奇的cookie魔瓶的时候了.cookie是记录访问你的站点的人的信息,它其实驻留在用户的硬盘上,即使用户已经离开你的站点,cookie在用户的硬盘上仍然存在,如果该用户再次返回你的站点,则该cookie就会被一起发回到你的服务器中,便于你统计和处理重复到访者的信息. 下面我们看一看一个cookie应用的典型例子,我们在一个网页中设置cookie,然后通过别的网页读取它.在使用该例子的时候,想想如果没有cookie,你如何做到这一点.

  • javascript asp教程第二课--转义字符

    并非是题外话:我们在第二课中要讲到的"转义字符"看起来与我们的课程并没有关系.事实并非如此.转义字符是在 asp中使用javascript的一个完整部分.而第二课要讲的恰恰就是转义字符.没有转义字符,那么你为了 写出有效率的asp脚本将会遇到许多的困难.抱歉,下面进入正题:以下是第二课的asp脚本.还记不记得在第一课的列子中,我们怎样编写了一个html输出都在同一行的代码.转义字符允许我们增加 换行符号.下面是我们上边例子在客户端html输出页面的代码:换行符:我又在下面重新打了一行a

  • JavaScript初级教程(第二课)第1/7页

    上一讲我们学了JavaScript出现在何处,看起来象什么.现在我们开始学习这种语言.本课我们将学习JavaScript如何存储信息,如何根据信息作决定,如何根据用户交互要求交替图片     准备好了吗? 现在开始学习电脑编程基础. 第一讲, 变量.     如果你学过代数,你一定见过变量.如果没学过也不要紧.变量是JavaScript存储信息的简单方式.例如,当你写:"x=2," "x"是一个变量,它存储值为2.如果而后你又说"y=x+3,",

  • VBScript教程 第二课在HTML页面中添加VBscript代码

    VB教程 > 第二课在HTML页面中添加VBscript代码 SCRIPT 元素用于将 VBScript 代码添加到 HTML 页面中. <SCRIPT> 标记 VBScript 代码写在成对的 <SCRIPT> 标记之间.例如,以下代码为一个测试传递日期的过程: <SCRIPT LANGUAGE="VBScript"> <!--Function CanDeliver(Dt)CanDeliver = (CDate(Dt) - Now())

  • JavaScript进阶教程之函数的定义、调用及this指向问题详解

    目录 前言 一:函数的定义 1.1 命名函数 1.2 匿名函数 1.3 利用 new Function() 声明函数 1.4 重要结论 二:函数的调用 2.1 普通函数调用 2.2 立即执行函数调用 2.3 对象内方法调用 2.4 构造函数调用 2.5 事件函数的调用 2.6 定时器函数的调用 三:各类函数的内部this指向问题 总结 前言 这篇文章开始我们函数的进阶篇,和我们JavaScript基础学的函数有了很多拓展,这篇文章首先我们从函数的定义,调用,及其 this指向 来一个总结. 一:

随机推荐