html5的web存储 sessionStorage和 localStorage
程序员文章站
2022-06-10 09:34:36
...
- 需求:随着互联网的快速发展,基于网页的应用越来越普遍,同时也变的越来越复杂,为了满足各种各样的需求,会经常性在本地存储大量的数据,传统方式我们以document.cookie来进行存储的,但是由于其存储大小只有4k左右,并且解析也相当的复杂,给开发带来诸多不便,HTML5规范则提出解决方案
- HTML5提供的解决方案:
- window.sessionStorage
- window.localStorage
- 特点:
- 设置、读取方便
- 容量较大,sessionStorage约5M、localStorage约20M
- 只能存储字符串,可以将对象JSON.stringify() 编码后存储
- Window.sessionStorage的使用
- 特点:
- 生命周期为关闭浏览器窗口:相当于存储在当前页面的内内存中
- 在同一个窗口下数据可以共享(在当前页面下可以获取到,换另外一个页面下不能获取到)
- 方法介绍:(两种存储方式的方法一致)
- SetItem(key,value):设置数据,以键值对的方式
- getItem(key):通过指定的键获取对应的值内容
- removeItem(key):删除指定的key及对应的值内容
- clear():清空所有存储内容
- 使用说明:
- 特点:
<script>
var userData=document.getElementById("userName");
//存储数据
document.getElementById("setData").οnclick=function(){
window.sessionStorage.setItem("userName",userData.value);
}
//获取数据
document.getElementById("getData").οnclick=function(){
var value=window.sessionStorage.getItem("userName");
alert(value);
}
</script>
- Window.localStorage的使用
- 特点:
- 永久生效,除非手动删除:存储在硬盘上
- 可以多窗口共享。但是不能跨浏览器
- 使用说明:
- 特点:
<script>
var userData=document.getElementById("userName");
//存储数据
document.getElementById("setData").οnclick=function(){
window.localStorage.setItem("userName",userData.value);
}
//获取数据
document.getElementById("getData").οnclick=function(){
var value=window.localStorage.getItem("userName");
alert(value);
}
//删除数据
document.getElementById("removeData").οnclick=function(){
window.localStorage.removeItem("userName");
}
</script>
案例web存储登录名
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div{
width: 300px;
height: 200px;
border: 1px solid #ccc;
margin:0 auto;
padding-left:80px;
padding-top:30px;
}
label{
height: 30px;
line-height:30px;
}
input[type="submit"]{
width:230px;
height: 30px;
line-height:30px;
text-align: center;
margin-top:10px;
}
</style>
</head>
<body>
<div>
<label for="userName">昵称:</label>
<input type="text" name="userName" id="userName"> <br>
<label for="userPwd">密码:</label>
<input type="password" name="userPwd" id="userPwd"> <br>
<label for="isRemenber">是否记住用户名:</label>
<input type="checkbox" id="isRemenber"><br>
<input type="submit" value="提交" id="submit">
</div>
<script>
window.οnlοad=function(){
/*页面打开,判断是否存储过用户名---*/
var uName=window.localStorage.getItem('userName');
if(uName != null){//说明之前存储过值,说明用户希望记住用户名
document.getElementById('userName').value=uName;
document.getElementById('userPwd').focus();
}
else{
document.getElementById('userName').focus();
}
/*点击登录时存储数据*/
document.getElementById("submit").οnclick=function(){
var name=document.getElementById('userName').value;
/*判断用户是否选择记住用户名*/
var isRemenber=document.getElementById('isRemenber');
if(isRemenber.checked==true){
/*存储数据到localstorage*/
window.localStorage.setItem('userName',name);
}
else{
window.localStorage.removeItem('userName');
}
window.location.href="http://www.taobao.com";
}
}
</script>
</body>
</html>
$(document).ready(function () {
/*web存储*/
/*页面打开,判断是否存储过用户名---*/
var loginName = localStorage.getItem("loginName");
if(loginName != null) {//说明之前存储过值,说明用户希望记住用户名
//将值赋给用户名输入框
$("#login-name").val(localStorage.getItem("loginName"));
} else {
document.getElementById('login-name').focus();
}
});
function btn_login() {
//referrer属性简单来说就是上一个页面的URL
var prevLink = document.referrer;
/*判断用户是否选择记住用户名*/
var rememberme=document.getElementById('rememberme');
$('#btn-login').button('loading');
var name = $("#login-name").val();
var pwd = $("#login-pwd").val();
if (name == "" || pwd == "") {
showMsg("请输入完整信息!", "info", 2000);
$('#btn-login').button('reset');
} else {
$.ajax({
type: 'POST',
url: '/admin/getLogin',
async: false,
dataType: "json",
data: {
'username': name,
'password': pwd
},
success: function (data) {
if(rememberme.checked==true){
/*存储数据到localstorage*/
localStorage.setItem('loginName', $("#login-name").val());
}
if (data.code == 1) {
$.toast({
text: data.msg,
heading: '成功',
icon: 'success',
showHideTransition: 'fade',
allowToastClose: true,
hideAfter: 1500,
stack: 1,
position: 'top-center',
textAlign: 'left',
loader: true,
loaderBg: '#ffffff',
afterHidden: function () {
if ($.trim(prevLink) == '') {
window.location.href = '/admin';
} else {
window.location.href = prevLink;
}
}
});
} else {
$('.login-body').addClass('animate shake');
$.toast({
text: data.msg,
heading: '错误',
icon: 'error',
showHideTransition: 'fade',
allowToastClose: true,
hideAfter: 2000,
stack: 1,
position: 'top-center',
textAlign: 'left',
loader: true,
loaderBg: '#ffffff',
afterHidden: function () {
$('.login-body').removeClass('animate shake');
}
});
$('#btn-login').button('reset');
}
}
});
}
}
上一篇: jQuery之Ztree
下一篇: 如何做短信营销(短信营销策略的5个技巧)
推荐阅读
-
html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例
-
HTMl5的存储方式sessionStorage和localStorage详解
-
HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
-
sessionStorage 、localStorage 和 cookie 之间的区别详解
-
本地存储常用方式 localStorage, sessionStorage,cookie 的区别 和 服务器存储session
-
在html5中,使用localStorage存储的数据放在哪个文件里?
-
解析HTML5中的新功能本地存储localStorage
-
详解Vue中localstorage和sessionstorage的使用
-
HTML5 本地存储 localStorage SessionStorage StorageListener- 2
-
HTML5开发学习(2):本地存储之localStorage 、sessionStorage、globalStorage