定义:
localStorage是将session永久存储在本地
用法:
localStorage.setItem("key", "value"); //保存session localStorage.getItem('key'); //获取key字段的session localStorage.remove('key'); //删除key字段的session localStorage.clear(); //清除所以本地session
通过js实现验证码获取限制:(60s内只能获取一次)
实现原理:
当成功获取验证码时的时间戳用localStorage方法存入本地session中,当再次点击获取验证码时,就用当前的时间戳减去上次获取成功获取验证码的时间戳,如果值小于60s,则抛出错误退出点击事件。如果值大于60s,才能将请求发送到后端获取验证码。
具体实现代码:
//执行获取验证码点击事件
$('#getcode').click(function () {
//判断是否已经获取过验证码,如果session不为空,则判断session是否过期
if(localStorage.getItem('time') != null){
//获取当前时间戳
var currenttime=new Date().getTime();
//验证当前时间戳减去上次成功获取验证码的时间戳是否小于60s
isexpire = (currenttime - localStorage.getItem('time')) < 60*1000;
if (isexpire){
//如果两次获取验证码的间隔小于60s则抛出错误提示并退出点击事件
layer.open({
title:"验证码获取失败",
content:"60s内只能获取一次验证码",
icon:5,
anim:6
});
return false;
}else{
//时间间隔超过60s,清除上次获取验证码的session
localStorage.clear();
}
}
//满足60s内没有获取验证码,将数据发送到后端进行处理
$.ajax({
url:"{:url('admin/index/forget')}",
type:'post',
data:$('form').serialize(),
dataType:'json',
success:function (data) {
if(data.code == 1){
//后端成功发送验证码,获取当前时间戳并存入session中
let time=new Date().getTime();
localStorage.setItem('time', time);
版权声明:本文为yang1234567898原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。