You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确使用localStorage实现验证后Div保持解锁并定时锁定?

解决localStorage保持div解锁及过期锁定问题

你的核心需求有两个:一是验证通过后刷新页面保持div解锁状态,二是设置过期时间,到期后刷新自动锁定。原代码仅实现了存储状态,但未在页面加载时读取状态,也缺少过期机制,下面是修正后的完整方案:

1. 完善存储逻辑:添加过期时间

在验证通过时,不仅存储解锁状态,还要记录当前时间加上你需要的过期时长(示例设置为1小时,即3600000毫秒):

$(function() {
  $('#podt').click(function(event) {
    event.preventDefault();
    $.post('/inc/test_code_sms.php', $('#form1').serialize(), function(data) {
      alert(data);
      if (data === "Номер активирован") {
        const content = document.getElementById("content");
        content.style.display = "block";
        // 存储解锁状态与过期时间(当前时间 + 1小时)
        localStorage.setItem('contentUnlocked', '1');
        localStorage.setItem('unlockExpire', Date.now() + 3600000);
      }
    });
  });
});

2. 页面加载时自动验证状态

页面初始化阶段,读取localStorage中的状态和过期时间,判断是否仍在有效期内,再决定div的显示状态:

$(function() {
  // 页面加载时检查解锁状态与过期时间
  const isUnlocked = localStorage.getItem('contentUnlocked');
  const expireTime = localStorage.getItem('unlockExpire');
  
  if (isUnlocked === '1' && expireTime && Date.now() < expireTime) {
    // 状态有效,显示div
    document.getElementById("content").style.display = "block";
  } else {
    // 已过期或未解锁,隐藏div并清理无效存储
    document.getElementById("content").style.display = "none";
    localStorage.removeItem('contentUnlocked');
    localStorage.removeItem('unlockExpire');
  }

  // 原有的验证点击逻辑
  $('#podt').click(function(event) {
    event.preventDefault();
    $.post('/inc/test_code_sms.php', $('#form1').serialize(), function(data) {
      alert(data);
      if (data === "Номер активирован") {
        const content = document.getElementById("content");
        content.style.display = "block";
        localStorage.setItem('contentUnlocked', '1');
        localStorage.setItem('unlockExpire', Date.now() + 3600000); // 1小时过期,可自行调整时长
      }
    });
  });
});

关键说明

  • 用Date.now()获取当前毫秒级时间戳,加上过期时长得到过期时间,每次页面加载时对比即可判断状态是否有效。
  • 若状态过期或未解锁,及时清理localStorage中的无效数据,避免残留状态干扰后续逻辑。
  • 过期时长可按需修改,比如30分钟就是1800000毫秒,直接替换数值即可。

内容的提问来源于stack exchange,提问作者Tsypk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 05:05:19