Heim > Artikel > Web-Frontend > Detaillierte Erläuterung der JavaScript-Cookie-Technologie
Verwenden Sie JS, um Cookies zu setzen, Cookies zu lesen und Cookies zu löschen.
JavaScript ist ein Skript, das auf der Clientseite ausgeführt wird. Daher ist es im Allgemeinen nicht möglich, eine Sitzung einzurichten, da die Sitzung auf der Serverseite ausgeführt wird.
Und Cookies werden auf dem Client ausgeführt, sodass Sie JS zum Setzen von Cookies verwenden können.
Angenommen, es gibt eine solche Situation: Springen Sie in einem bestimmten Anwendungsfall von Seite A zu Seite B: Wenn JS verwendet wird, um den Wert einer bestimmten Variablen mithilfe der Variablen temp auf Seite A zu speichern, muss auf Seite B auch JS verwendet werden, um auf den Variablenwert von temp zu verweisen. Für den Lebenszyklus globaler Variablen oder Statische Variablen in JS sind begrenzt. Wenn ein Seitensprung erfolgt oder die Seite geschlossen wird, werden die Werte dieser Variablen neu geladen, d. h. der Speichereffekt wird nicht erreicht. Die beste Lösung für dieses Problem besteht darin, Cookies zu verwenden, um den Wert der Variablen zu speichern. Wie werden also Cookies gesetzt und gelesen?
Zunächst müssen Sie die Struktur von Cookies ein wenig verstehen: Cookies werden in Form von Schlüssel-Wert-Paaren gespeichert, also im Schlüssel=Wert-Format. Jedes Cookie wird normalerweise durch „;“ getrennt.
JS-Einstellungs-Cookie:
Angenommen, Sie möchten auf Seite A den Wert der Variablen Benutzername („Jack“) im Cookie speichern und der Schlüsselwert ist Name, dann der Der entsprechende JS-Code lautet:
document.cookie="+username;
JS liest Cookie:
Angenommen, der im Cookie gespeicherte Inhalt ist: name=jack; passwort=123
Dann in B Der JS-Code zum Abrufen des Werts der Variablen Benutzername auf der Seite lautet wie folgt:
var username=document.cookie.split(";")[0].split("=")[1]; //JS操作cookies方法! //写cookies function setCookie(name,value) { var Days = 30; var exp = new Date(); exp.setTime(exp.getTime() + Days*24*60*60*1000); document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString(); } //读取cookies function getCookie(name) { var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); if(arr=document.cookie.match(reg)) return unescape(arr[2]); else return null; } //删除cookies function delCookie(name) { var exp = new Date(); exp.setTime(exp.getTime() - 1); var cval=getCookie(name); if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString(); } //使用示例 setCookie("name","hayden"); alert(getCookie("name")); //如果需要设定自定义过期时间 //那么把上面的setCookie 函数换成下面两个函数就ok; //程序代码 function setCookie(name,value,time) { var strsec = getsec(time); var exp = new Date(); exp.setTime(exp.getTime() + strsec*1); document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString(); } function getsec(str) { alert(str); var str1=str.substring(1,str.length)*1; var str2=str.substring(0,1); if (str2=="s") { return str1*1000; } else if (str2=="h") { return str1*60*60*1000; } else if (str2=="d") { return str1*24*60*60*1000; } }
//这是有设定过期时间的使用示例: //s20是代表20秒 //h是指小时,如12小时则是:h12 //d是天数,30天则:d30 setCookie(“name”,”hayden”,”s20”);