欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

非常不錯(cuò)的[JS]Cookie精通之路

 更新時(shí)間:2008年06月26日 08:55:56   作者:  
Cookies,有些人喜歡它們,有些人憎恨它們。但是,很少有人真正知道如何使用它們?,F(xiàn)在你可以成為少數(shù)人中的成員-可以自傲的 Cookie 大師。

// Date() 的構(gòu)造器設(shè)置以毫秒為單位
// .getTime() 方法返回時(shí)間,單位為毫秒
// 所以要設(shè)置15分鐘到期,要用60000毫秒乘15分鐘
var expiration = new Date((new Date()).getTime() + 15 * 60000);
document.cookie = "username=" + escape(form.username.value)+ "; expires ="
+ expiration.toGMTString() + "; path=" + "/" + "; _
domain=" + "mydomain.com" + "; secure";

讀取cookies值有點(diǎn)象個(gè)小把戲,因?yàn)槟阋淮尉偷玫搅藢儆诋?dāng)前文檔的所有cookies。

// 下面這個(gè)語句讀取了屬于當(dāng)前文檔的所有cookies
var allcookies = document.cookie;

現(xiàn)在,我們得解析allcookies變量里的不同cookies,找到感興趣的指定cookie。這個(gè)工作很簡單,因?yàn)槲覀兛梢岳肑avascript語言提供的擴(kuò)
展字符串支持。

如果我們對(duì)前面分配的cookie "username" 感興趣,可以用下面的腳本來讀取它的值。

// 我們定義一個(gè)函數(shù),用來讀取特定的cookie值。
function getCookie(cookie_name)

var allcookies = document.cookie;
var cookie_pos = allcookies.indexOf(cookie_name);

// 如果找到了索引,就代表cookie存在,
// 反之,就說明不存在。
if (cookie_pos != -1)

// 把cookie_pos放在值的開始,只要給值加1即可。
cookie_pos += cookie_name.length + 1;
var cookie_end = allcookies.indexOf(";", cookie_pos);

if (cookie_end == -1)

cookie_end = allcookies.length;


var value = unescape(allcookies.substring(cookie_pos, cookie_end));


return value;


// 調(diào)用函數(shù)
var cookie_val = getCookie("username");

上面例程里的 cookie_val 變量可以用來生成動(dòng)態(tài)內(nèi)容,或者發(fā)送給服務(wù)器端CGI腳本進(jìn)行處理?,F(xiàn)在你知道了使用Javascript腳本操縱
cookies的基本方法。但是,如果你跟我一樣,那么我們要做的第一件事,就是建立一些接口函數(shù),把cookies處理上的麻煩隱藏起來。不過,
在你開始編程之前,稍候片刻。這些工作,早就有人替你做好了。你要做的,只是到哪去找這些接口函數(shù)而已。

比如,在David Flangan的Javascript: The Definitive Guide 3rd Ed.這本書里,可以找到很好的cookie應(yīng)用類。你也可以在Oreilly的WEB站
點(diǎn)上找到這本書里的例子。本文最后的鏈接列表里,有一些訪問這些cookie示例的直接鏈接。



Cookies 怪獸

因?yàn)槟承┰駽ookies 的名聲很不好。許多人利用cookies做一些卑鄙的事情,比如流量分析、點(diǎn)擊跟蹤。Cookies 也不是非常安全,特別是沒
有secure屬性的cookies。不過,即使你用了安全的cookies,如果你和別人共用計(jì)算機(jī),比如在網(wǎng)吧,那么別人就可以窺探計(jì)算機(jī)硬盤上未加
密保存的cookie文件,也就有可能竊取你的敏感信息。所以,如果你是一個(gè)WEB開發(fā)人員,那么你要認(rèn)真考慮這些問題。不要濫用cookies。不
要把用戶可能認(rèn)為是敏感的數(shù)據(jù)保存在cookies里。如果把用戶的社會(huì)保險(xiǎn)號(hào)、信用卡號(hào)等保存在cookie里,等于把這些敏感信息放在窗戶紙下
,無異于把用戶投到極大危險(xiǎn)之中。一個(gè)好的原則是,如果你不想陌生人了解你的這些信息,那就不要把它們保存在cookies里。

另外,cookies還有一些實(shí)際的限制。Cookies保留在計(jì)算機(jī)上,不跟著用戶走。如果用戶想換計(jì)算機(jī),那么新計(jì)算機(jī)無法得到原來的cookie。
甚至用戶在同一臺(tái)計(jì)算機(jī)上使用不同瀏覽器,也得不到原來的cookie:Netscape 不能讀取Internet Explorer 的cookies。

還有,用戶也不愿意接受cookies。所以不要以為所有的瀏覽器都能接受你發(fā)出的cookies。如果瀏覽器不接受cookies,你要保證自己的WEB站
點(diǎn)不致因此而崩潰或中斷。

另外WEB 瀏覽器能保留的cookies不一定能超過300個(gè)。也沒有標(biāo)準(zhǔn)規(guī)定瀏覽器什么時(shí)候、怎么樣作廢cookies。所以達(dá)到限制時(shí),瀏覽器能夠有
效地隨機(jī)刪除cookies。瀏覽器保留的來自一個(gè)WEB服務(wù)器上的cookies,不超過20個(gè),每個(gè)cookie的數(shù)據(jù)(包括名稱和值),不超過4K字節(jié)。(
不過,本文里的cookie尺寸沒問題,它只占了12 K字節(jié),保存在3個(gè)3 cookies里。)

簡而言之,注意保持cookie簡單。不要依賴cookies的存在,不要在每個(gè)cookie里保存太多信息。不要保存太多的cookes。但是,拋除這些限制
,在技巧高超的WEB管理員手里,cookie的概念是一個(gè)有用的工具。

外部鏈接
每個(gè) Javascript 程序員都應(yīng)當(dāng)有一份Javascript: David Flanagan 的The Definitive Guide。 這本書里找到cookie 類例程可以幫助你把
不止一個(gè)變量編碼到單一的cookie,克服掉“每個(gè)WEB服務(wù)器20 個(gè)cookies的限制”。請(qǐng)點(diǎn)擊這個(gè)鏈接下載該例程,
ftp://ftp.oreilly.com/pub/examples/nutshell/javascript/。

相關(guān)文章

  • Javascript中的Callback方法淺析

    Javascript中的Callback方法淺析

    這篇文章主要介紹了Javascript中的Callback方法淺析,本文講解了什么是callback、Javscript Callback、Callback是什么、Callback實(shí)例等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • JavaScript中判斷函數(shù)是new還是()調(diào)用的區(qū)別說明

    JavaScript中判斷函數(shù)是new還是()調(diào)用的區(qū)別說明

    具名函數(shù)的各種調(diào)用方式 在之前篇幅中已經(jīng)介紹過了。這篇看看如何判斷一個(gè)函數(shù)是被new調(diào)用的,還是被其它方式調(diào)用的。
    2011-04-04
  • JavaScript判斷瀏覽器運(yùn)行環(huán)境的詳細(xì)方法

    JavaScript判斷瀏覽器運(yùn)行環(huán)境的詳細(xì)方法

    這篇文章主要給大家介紹了關(guān)于JavaScript判斷瀏覽器運(yùn)行環(huán)境的詳細(xì)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用JavaScript具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • javascript encodeURI和encodeURIComponent的比較

    javascript encodeURI和encodeURIComponent的比較

    在進(jìn)行SaaS前端開發(fā)的時(shí)候,大家經(jīng)常會(huì)用到兩個(gè)JavaScriptNative函數(shù):encodeURI 和 encodeURIComponent。這篇文章詳細(xì)解釋這兩個(gè)函數(shù)的用途并比較它們的不同之處
    2010-04-04
  • 微信小程序開發(fā)之你可能沒有踩過的神坑總結(jié)

    微信小程序開發(fā)之你可能沒有踩過的神坑總結(jié)

    最近在做一個(gè)小程序的項(xiàng)目,所以記錄下開發(fā)過程中遇到的坑,這篇文章主要給大家介紹了關(guān)于微信小程序開發(fā)之你可能沒有踩過的神坑,需要的朋友可以參考下
    2021-09-09
  • 微信小程序?qū)崿F(xiàn)頁面分享onShareAppMessage

    微信小程序?qū)崿F(xiàn)頁面分享onShareAppMessage

    這篇文章主要介紹了微信小程序?qū)崿F(xiàn)頁面分享onShareAppMessage,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 微信小程序?qū)崿F(xiàn)翻牌抽獎(jiǎng)動(dòng)畫

    微信小程序?qū)崿F(xiàn)翻牌抽獎(jiǎng)動(dòng)畫

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)翻牌抽獎(jiǎng)動(dòng)畫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • threejs太陽光與陰影效果實(shí)例代碼

    threejs太陽光與陰影效果實(shí)例代碼

    在Threejs中類似于我們現(xiàn)實(shí)世界,物體顯示的顏色是由物體本身的顏色及光照的顏色相互疊加而得到的,這篇文章主要給大家介紹了關(guān)于threejs太陽光與陰影效果的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • 淺談js原生拖放

    淺談js原生拖放

    下面小編就為大家?guī)硪黄獪\談js原生拖放。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-11-11
  • 微信小程序npm引入vant-weapp的踩坑記錄

    微信小程序npm引入vant-weapp的踩坑記錄

    這篇文章主要給大家介紹了關(guān)于微信小程序npm引入vant-weapp的踩坑記錄,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用微信小程序具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08

最新評(píng)論