我们在开发网站或者网页游戏中通常需要存储用户数据,实现一些功能,比如记住密码,自动填入信息,一段时间内账号免登录等。
这些数据需要存储在浏览器中,常用的存储方式有以下几种:Local Storage
、Session Storage
、Cookies
。
1. Local Storage
Local Storage
的值能永久的存储在浏览器上,直到手动清空浏览器数据。
同一个浏览器,同一个域名下,存储数据一直都在。
只要在相同的协议,相同的主机名,相同的端口下,就能读取/修改同一个 localStorage
对象。
数据类型是标准的键值对(key-value)。
用途:适合长期储存的数据。
示例代码(typescript 语言):
public getLocalStorage(key: string): string {
return localStorage.getItem(key) || "";
}
public setLocalStorage(key: string, value: string) {
localStorage.setItem(key, value);
}
2. Session Storage
Session Storage
存储特定某个会话的数据,存储数据依赖于当前窗口(当前会话)。
当前窗口关闭,数据消失;刷新当前窗口,数据不变;新打开窗口,没有数据。
只要在相同协议,相同主机名,相同端口,同一个窗口下,就能读取/修改同一个 sessionStorage
对象。
数据类型是标准的键值对(key-value)。
用途:可以用于敏感性账号的一次性登录。
示例代码(typescript 语言):
public getSessionStorage(key: string): string {
return sessionStorage.getItem(key) || "";
}
public setSessionStorage(key: string, value: string) {
sessionStorage.setItem(key, value);
}
3. Cookies
Cookie
存储的数据在设置的 过期时间
之前一直有效。若未设置过期时间,默认关闭浏览器失效。
cookie
是基于同一个浏览器使用。
用途:可以用于实现记住密码,自动填入信息,自动登录等功能。
示例代码(typescript 语言):
public getCookie(key: string): string {
let name = key + "=";
let ca = document.cookie.split(";");
for (let index = 0; index < ca.length; index++) {
const e = ca[index].trim();
if (e.indexOf(name) == 0) {
return e.substring(name.length, e.length);
}
}
return "";
}
public setCookie(key: string, value: string, exdays?: number) {
if (exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
document.cookie = `${key}=${value};expires=${d.toUTCString()}`;
}
else {
document.cookie = `${key}=${value}`;
}
}
此处评论已关闭