摘要:優(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--cookiecookie可以像身份證一樣在客戶端請(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名字和值、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
摘要:相同之處標(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...
摘要:接收響應(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...
摘要:訪問(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 === (...
摘要:該對(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...
摘要:標(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不存在...
閱讀 2277·2023-04-26 01:57
閱讀 3298·2023-04-25 16:30
閱讀 2352·2021-11-17 09:38
閱讀 1116·2021-10-08 10:14
閱讀 1421·2021-09-23 11:21
閱讀 3724·2019-08-29 17:28
閱讀 3490·2019-08-29 15:27
閱讀 974·2019-08-29 13:04