成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

溫故js系列(3)-cookie優(yōu)缺點(diǎn)&設(shè)置獲取刪除cookie

Vultr / 2677人閱讀

摘要:優(yōu)缺點(diǎn)優(yōu)點(diǎn)只在中存放不敏感數(shù)據(jù),即使被盜也不會(huì)有重大損失??刂频纳冢怪粫?huì)永遠(yuǎn)有效。極高的擴(kuò)展性和可用性,使用簡(jiǎn)單,操作方法方便缺點(diǎn)數(shù)量和長(zhǎng)度的限制。每個(gè)長(zhǎng)度不能超過(guò),否則會(huì)被截掉。設(shè)置一般主要設(shè)置名字和值有效期路徑域名是否安全傳輸。

前端學(xué)習(xí):教程&開發(fā)模塊化/規(guī)范化/工程化/優(yōu)化&工具/調(diào)試&值得關(guān)注的博客/Git&面試-前端資源匯總

歡迎提issues斧正:cookie

JavaScript--cookie

cookie可以像身份證一樣在客戶端請(qǐng)求服務(wù)器的時(shí)候確定信息。也可以在客戶端分擔(dān)服務(wù)端的壓力,做很多判斷和存儲(chǔ)信息。

cookie 優(yōu)缺點(diǎn)

優(yōu)點(diǎn):
1.只在cookie中存放不敏感數(shù)據(jù),即使被盜也不會(huì)有重大損失。
2.控制cookie的生命期,使之不會(huì)永遠(yuǎn)有效。就算被盜了偷盜者很可能拿到的是一個(gè)過(guò)期的cookie。
3.cookie幫助服務(wù)端承擔(dān)了很大的壓力,可以利用cookie在和客戶端做很多判斷而不應(yīng)經(jīng)過(guò)服務(wù)端。
4.極高的擴(kuò)展性和可用性,使用簡(jiǎn)單,操作方法方便
缺點(diǎn):
1.cookie數(shù)量和長(zhǎng)度的限制。每個(gè)cookie長(zhǎng)度不能超過(guò)4KB,否則會(huì)被截掉。IE下每個(gè)domain最多只能有50條cookie(IE6是20條),F(xiàn)irefox最多50個(gè)cookie,chrome和Safari沒(méi)有做硬性限制,IE和Opera 會(huì)清理近期最少使用的cookie,F(xiàn)irefox會(huì)隨機(jī)清理cookie。
2.安全性問(wèn)題。這是cookie一個(gè)隱患,如果cookie被人攔截了,那人就可以取得所有的session信息。即使加密也與事無(wú)補(bǔ),因?yàn)閿r截者并不需要知道cookie的意義,他只要原樣轉(zhuǎn)發(fā)cookie就可以達(dá)到目的了。
3.有些狀態(tài)不可能保存在客戶端。例如,為了防止重復(fù)提交表單,我們需要在服務(wù)器端保存一個(gè)計(jì)數(shù)器。如果我們把這個(gè)計(jì)數(shù)器保存在客戶端,那么它起不到任何作用。所以還是有一定的局限性。

設(shè)置cookie

一般主要設(shè)置cookie名字和值、cookie有效期、路徑、域名、是否安全傳輸。
原生方法:

document.cookie="key="+value;

封裝方法:

function setCookie(key, value, expires, path, domain, secure) {     
    var cookieText = encodeURIComponent(key) + "=" + encodeURIComponent(value);     
    if (expires instanceof Date) {         
        cookieText += "; expires=" + expires;     
    }     
    if (path) {         
        cookieText += "; expires=" + expires;     
    }     
    if (domain) {         
        cookieText += "; domain=" + domain;     
    }     
    if (secure) {         
        cookieText += "; secure";     
    }     
    document.cookie = cookieText; 
} 

JQuery方法(JQuery沒(méi)有封裝cookie方法,需要下載基于JQuery的插件jquery.cookie.js):

$.cookie("key","value",{
    expires:7,
    path:"/",
    domain: "xxx.com",
    secure: false
});
獲取cookie

原生方法:

var cookieStr = document.cookie;  //cookieStr=="username=Xzavier;password=123456;sex=man"

這樣獲得了所有的cookie,是一個(gè)字符串。根據(jù)需要選取,比如:

var username=document.cookie.split(";")[0].split("=")[1];
var password=document.cookie.split(";")[1].split("=")[1];

封裝方法:

function getCookie(key) {     
    var cookieName = encodeURIComponent(key) + "=";     
    var cookieStart = document.cookie.indexOf(cookieName);     
    var cookieValue = null;     
    if (cookieStart > -1) {         
        var cookieEnd = document.cookie.indexOf(";", cookieStart);         
        if (cookieEnd == -1) {             
            cookieEnd = document.cookie.length;         
        }         
        cookieValue = decodeURIComponent(document.cookie.substring(cookieStart + cookieName.length, cookieEnd));     
    }     
    return cookieValue; 
} 

JQuery方法:

$.cookie(‘key’); //value?value:null
刪除cookie

原生方法:

document.cookie = "key=value;expires=" + new Date(0); //時(shí)間可以是現(xiàn)在以及現(xiàn)在之前

封裝方法:

function unsetCookie(key) {     
    document.cookie = key + "= ; expires=" + new Date(0); 
} 

JQuery方法:

$.cookie(‘key’,null);

其他參數(shù)設(shè)置:

$.cookie("key", value, {
    expires: new Date(0),
    path: "/",
    domain: "xxx.com"
});

cookie在持久保存客戶端數(shù)據(jù)提供了方便,分擔(dān)了服務(wù)器存儲(chǔ)的負(fù)擔(dān),雖然有局限性,但是不可替代的。使用的方法也非常簡(jiǎn)單,但平時(shí)使用cookie的時(shí)候也需要多多注意安全性。

jquery.cookie.js下載:jquery.cookie.js
cookie弊端參考:cookie弊端

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/79907.html

相關(guān)文章

  • 溫故js系列(6)-DOM

    摘要:相同之處標(biāo)準(zhǔn)的與是同步的。公認(rèn)的非自定義的特性會(huì)被以屬性的形式添加到對(duì)象中。不過(guò)傳遞給的特性名與實(shí)際的特性名相同。如,,,,等事件處理程序。最好控制在最合理的范圍內(nèi)。返回了元素大小,默認(rèn)單位是。 前端學(xué)習(xí):教程&開發(fā)模塊化/規(guī)范化/工程化/優(yōu)化&工具/調(diào)試&值得關(guān)注的博客/Git&面試-前端資源匯總 歡迎提issues斧正:DOM JavaScript-DOM DOM簡(jiǎn)介 DOM(Do...

    xiaochao 評(píng)論0 收藏0
  • 溫故js系列(12)-ajax&&優(yōu)缺點(diǎn)&&node后端

    摘要:接收響應(yīng)當(dāng)請(qǐng)求發(fā)送到服務(wù)器端,收到響應(yīng)后,響應(yīng)的數(shù)據(jù)會(huì)自動(dòng)填充對(duì)象的屬性。一般而已狀態(tài)代碼為作為成功的標(biāo)志。必要時(shí),可以將查詢字符串參數(shù)追加到的末尾,以便提交給服務(wù)器。后端實(shí)現(xiàn)可以自學(xué)一點(diǎn)后端知識(shí),便于學(xué)習(xí)。 前端學(xué)習(xí):教程&開發(fā)模塊化/規(guī)范化/工程化/優(yōu)化&工具/調(diào)試&值得關(guān)注的博客/Git&面試-前端資源匯總 歡迎提issues斧正:Ajax JavaScript-Ajax&&no...

    LiangJ 評(píng)論0 收藏0
  • 溫故知新之JS基礎(chǔ)

    摘要:訪問(wèn)屬性是通過(guò)操作符完成的,但這要求屬性名必須是一個(gè)有效的變量名小紅的屬性名不是一個(gè)有效的變量,就需要用括起來(lái)。閉包應(yīng)用封裝私有變量箭頭函數(shù)箭頭函數(shù)相當(dāng)于匿名函數(shù),并且簡(jiǎn)化了函數(shù)定義。 數(shù)據(jù)類型 NAN NaN === NaN; // false 唯一能判斷NaN的方法是通過(guò)isNaN()函數(shù): isNaN(NaN); // true 浮點(diǎn)數(shù)的相等比較: 1 / 3 === (...

    Dr_Noooo 評(píng)論0 收藏0
  • 溫故js系列(14)-閉包&垃圾回收&內(nèi)存泄露&閉包應(yīng)用&作用域鏈&

    摘要:該對(duì)象包含了函數(shù)的所有局部變量命名參數(shù)參數(shù)集合以及,然后此對(duì)象會(huì)被推入作用域鏈的前端。如果整個(gè)作用域鏈上都無(wú)法找到,則返回。此時(shí)的作用域鏈包含了兩個(gè)對(duì)象的活動(dòng)對(duì)象和對(duì)象。 前端學(xué)習(xí):教程&開發(fā)模塊化/規(guī)范化/工程化/優(yōu)化&工具/調(diào)試&值得關(guān)注的博客/Git&面試-前端資源匯總 歡迎提issues斧正:閉包 JavaScript-閉包 閉包(closure)是一個(gè)讓人又愛(ài)又恨的somet...

    Amio 評(píng)論0 收藏0
  • html&&css

    摘要:標(biāo)準(zhǔn)模式的排版和運(yùn)作模式都是以該瀏覽器支持的最高標(biāo)準(zhǔn)運(yùn)行。這種合并外邊距的方式被稱為折疊,并且因而所結(jié)合成的外邊距稱為折疊外邊距。控制表單控件的禁用狀態(tài)。首先,巧妙的使用這一標(biāo)記,將游覽器從所有情況中分離出來(lái)。 1.Doctype作用?標(biāo)準(zhǔn)模式與兼容模式各有什么區(qū)別 聲明位于位于HTML文檔中的第一行,處于?標(biāo)簽之前。告知瀏覽器的解析器,用什么文檔標(biāo)準(zhǔn)解析這個(gè)文檔。DOCTYPE不存在...

    gggggggbong 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<