Heim >Web-Frontend >js-Tutorial >JavaScript-Kapselung Cookie-Anwendungsschnittstelle_Javascript-Kenntnisse
Dieser Artikel zeichnet einige der Dinge auf, die ich beim Lesen des Buches während des Cookie-Studiums gelernt habe, vertieft mein Gedächtnis und organisiert und zeichnet sie für eine spätere Wiederholung auf.
Verpackungsfunktion
Der Zugriff auf Cookies ist standardmäßig problematisch. Da Cookies Informationen über Zeichenfolgen speichern, ist es bei der Durchführung von Zuweisungsvorgängen einfach, den Datentyp der gelesenen Informationen zu konvertieren. Darüber hinaus ist die Zeichenfolge der Cookie-Informationen selbst störend, was insbesondere bei Webanwendungen, die häufig Cookie-Informationen verwenden, unangenehm ist. Daher müssen Sie selbst eine Cookie-Funktion kapseln, um die Entwicklungseffizienz zu gewährleisten!
Definieren Sie eine Funktion Cookie(). Diese Funktion kann die angegebenen Cookie-Informationen schreiben, die angegebenen Cookie-Informationen löschen und den Cookie-Wert des angegebenen Namens lesen. Darüber hinaus können Sie in dieser Funktion auch die Gültigkeitsdauer festlegen die Cookie-Informationen. Gültige Pfade, Bereiche und Sicherheitsoptionseinstellungen. Vollständiger Code:
var Cookie = function(name, value, options) { // 如果第二个参数存在 if (typeof value != 'undefined') { options = options || {}; if (value === null) { // 设置失效时间 options.expires = -1; } var expires = ''; // 如果存在事件参数项,并且类型为 number,或者具体的时间,那么分别设置事件 if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) { var date; if (typeof options.expires == 'number') { date = new Date(); date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000)); } else { date = options.expires; } expires = '; expires=' + date.toUTCString(); } var path = options.path ? '; path=' + options.path : '', // 设置路径 domain = options.domain ? '; domain=' + options.domain : '', // 设置域 secure = options.secure ? '; secure' : ''; // 设置安全措施,为 true 则直接设置,否则为空 // 把所有字符串信息都存入数组,然后调用 join() 方法转换为字符串,并写入 Cookie 信息 document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join(''); } else { // 如果第二个参数不存在 var CookieValue = null; if (document.cookie && document.cookie != '') { var Cookie = document.cookie.split(';'); for (var i = 0; i < Cookies.length; i++) { var Cookie = (Cookie[i] || "").replace( /^\s+|\s+$/g, ""); if (Cookie.substring(0, name.length + 1) == (name + '=')) { CookieValue = decodeURIComponent(Cookie.substring(name.length + 1)); break; } } } return CookieValue; } };
Anwendung
Cookie-Informationen schreiben:
// 简单写入一条 Cookie 信息 cookie("user", "baidu"); // 写入一条 Cookie 信息,并且设置更多选项 cookie("user", "baidu", { expires: 10, // 有效期为 10 天 path: "/", // 整个站点有效 domain: "www.baidu.com", // 有效域名 secure: true // 加密数据传输 });
2. Cookie-Informationen lesen:
cookie("user");
3. Cookie-Informationen löschen:
cookie("user", null);
Ich werde Ihnen einen Paketcode mitteilen
//向cookie写入数据 function writeCookie(name, value, days) { // 定义有效日期(cookie的有效时间) var expires = ""; // 为有效日期赋值 if (days) { var date = new Date(); //设置有效期(当前时间+时间段) date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));//时间段为毫秒数 expires = "; expires=" + date.toGMTString(); } // 给cookie赋值 name, value和expiration date(有效期) document.cookie = name + "=" + value + expires + "; path=/"; } //读取cookie数据 function readCookie(name) { var searchName = name + "="; var cookies = document.cookie.split(';'); for(var i=0; i < cookies.length; i++) { var c = cookies[i]; while (c.charAt(0) == ' ') c = c.substring(1, c.length); if (c.indexOf(searchName) == 0) return c.substring(searchName.length, c.length); } return null; } //清楚所有的cookie function eraseCookie(name) { // 将时间设置成-1将清除存储在cookie中的数据 writeCookie(name, "", -1); }
Wenn der Artikel Fehler oder Fragen enthält, weisen Sie ihn bitte darauf hin. Lasst uns euch alle ermutigen!