cookie存储
cookie若不设置过期时间关闭浏览器后会自动清除数据
存储限制4k
同地址下其他文件也能读取到
<form action="">
用户名:<input type="text" id="username" value="" />
密码:<input type="password" id="userpassword" value="" />
<input type="checkbox" id="remember" onclick="rememberValue(this)">
<label for="remember">记住账号密码</label>
</form>
/**
* cookie用字符串拼接即可
* cookie后可接
* ; path=path
* ; domain=domain
* ; secure
*/
/**
* [setCookie 设置cookie]
* @param {[String]} c_name [起个名,独一无二的名字]
* @param {[String]} c_value [需要存的值]
* @param {[Number]} exdays [时间/天数,设置保存时间 0时为删除]
*/
function setCookie(c_name, c_value, exdays) {
document.cookie = c_name + "=" + encodeURIComponent(c_value) + "; max-age=" + (exdays*60*60*24);// 解决符号转码
}
/**
* 读取cookies
* @param {[String]} c_name [读取名字]
* @return {[String]} [返回读取cookie的值]
*/
function getCookie(c_name) {
var name = c_name + "=";
var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = decodeURIComponent(ca[i].trim());// 解码
if (c.indexOf(name) == 0){
return c.substring(name.length, c.length);
}
}
return "";
}
// 使用示例
var username = document.getElementById("username"); // 获取input username
var userpwd = document.getElementById("userpassword"); // 获取input userpassword
var remember = document.getElementById("remember"); // 获取记住账号密码
/**
* 点击复选框记住 账号、密码、复选框
*/
function rememberValue() {
if (remember.checked == true) {
setCookie('user', username.value);// 临时
setCookie('pwd', userpwd.value, 30);
setCookie('remember', remember.checked, 30);
} else {
setCookie("user","",0);
setCookie("pwd","",0);
setCookie("remember","",0);
}
}
/**
* 页面加载完毕后从cookie里读取值并填入相应的标签内
*/
window.onload = function () {
username.value = getCookie("user");
userpwd.value = getCookie("pwd");
remember.checked = getCookie("remember");
}
localStorage存储
存储上限限制:不同的浏览器存储的上限也不一样,但大多数浏览器把上限限制在5MB以下。
localStorage与sessionStorage的区别:就是localStorage属于永久性存储,而sessionStorage属于当会话结束的时候,sessionStorage中的键值对会被清空
关闭浏览器后,再打开仍有数据
清除缓存加载后仍有数据
同网络地址页面均能得到数据
<form action="">
用户名:
<input type="text" id="username" value="" /> 密码:
<input type="password" id="userpassword" value="" />
<input type="checkbox" id="remember" onclick="rememberValue(this)">
<label for="remember">记住账号密码</label>
</form>
// localStorage使用示例
var username = document.getElementById("username"); // 获取input username
var userpwd = document.getElementById("userpassword"); // 获取input userpassword
var remember = document.getElementById("remember"); // 获取记住账号密码
// 点击复选框记住 账号、密码、复选框
function rememberValue() {
if (remember.checked == true) {
localStorage.setItem('user', username.value);
localStorage.setItem('pwd', userpwd.value);
localStorage.setItem('remember', remember.checked);
} else {
localStorage.removeItem("user");
localStorage.removeItem("pwd");
localStorage.removeItem("remember");
// localStorage.clear();// 全部删除
}
}
// 页面加载完毕后从localStorage里读取值并填入相应的标签内
window.onload = function () {
username.value = localStorage.getItem("user");
userpwd.value = localStorage.getItem("pwd");
remember.checked = localStorage.getItem("remember");
}
sessionStorage存储
关闭浏览器再打开将不保存数据
复制标签页会连同sessionStorage数据一同复制
复制链接地址打开网页不会复制seessionStorage内的数据
清除缓存加载当前页对页面无影响
- 同源策略限制。若想在不同页面之间对同一个sessionStorage进行操作,这些页面必须在同一协议、同一主机名和同一端口下。(IE 8和9存储数据仅基于同一主机名,忽略协议(HTTP和HTTPS)和端口号的要求)
- 单标签页限制。sessionStorage操作限制在单个标签页中,在此标签页进行同源页面访问都可以共享sessionStorage数据。
- 只在本地存储。seesionStorage的数据不会跟随HTTP请求一起发送到服务器,只会在本地生效,并在关闭标签页后清除数据。(若使用Chrome的恢复标签页功能,seesionStorage的数据也会恢复)。
- 存储方式。seesionStorage的存储方式采用key、value的方式。value的值必须为字符串类型(传入非字符串,也会在存储时转换为字符串。true值会转换为"true")。
- 存储上限限制:不同的浏览器存储的上限也不一样,但大多数浏览器把上限限制在5MB以下。
<form action="">
用户名:
<input type="text" id="username" value="" /> 密码:
<input type="password" id="userpassword" value="" />
<input type="checkbox" id="remember" onclick="rememberValue(this)">
<label for="remember">记住账号密码</label>
</form>
// sessionStorage使用示例
var username = document.getElementById("username"); // 获取input username
var userpwd = document.getElementById("userpassword"); // 获取input userpassword
var remember = document.getElementById("remember"); // 获取记住账号密码
// 点击复选框记住 账号、密码、复选框
function rememberValue() {
if (remember.checked == true) {
sessionStorage.setItem('user', username.value);
sessionStorage.setItem('pwd', userpwd.value);
sessionStorage.setItem('remember', remember.checked);
} else {
sessionStorage.removeItem("user");
sessionStorage.removeItem("pwd");
sessionStorage.removeItem("remember");
// sessionStorage.clear();// 全部删除
}
}
// 页面加载完毕后从sessionStorage里读取值并填入相应的标签内
window.onload = function () {
username.value = sessionStorage.getItem("user");
userpwd.value = sessionStorage.getItem("pwd");
remember.checked = sessionStorage.getItem("remember");
}
测试浏览器的存储上限
http://dev-test.nemikor.com/web-storage/support-test/