阅读时间缓存(快应用)

点击查看代码
// 定义全局变量
let startTime = null; // 记录开始时间
let elapsedTime = 0; // 记录已用时间

// 当用户进入阅读页面时调用该函数
function startReading() {
  const storedTime = parseInt(localStorage.getItem("elapsedTime")); // 获取之前保存的已用时间(单位:秒)
  const currentTime = new Date();

  // 如果是新的一天,则重置已用时间
  if (currentTime.getHours() === 0 && currentTime.getMinutes() === 0 && currentTime.getSeconds() === 0) {
    elapsedTime = 0;
    localStorage.setItem("elapsedTime", elapsedTime);
  } else {
    elapsedTime = storedTime || 0; // 如果之前有保存时间,则恢复已用时间
  }

  startTime = currentTime.getTime(); // 记录开始时间的时间戳
  setInterval(updateElapsedTime, 1000); // 每秒更新已用时间
}

// 更新已用时间
function updateElapsedTime() {
  const currentTime = new Date().getTime(); // 获取当前时间的时间戳
  elapsedTime += Math.floor((currentTime - startTime) / 1000); // 累加已用时间(单位:秒)

  // 将已用时间格式化为 hh:mm:ss
  const formattedTime = formatTime(elapsedTime);
  console.log("已用时间:" + formattedTime);

  // 判断是否达到领取福利的时间(30分钟)
  if (elapsedTime >= 1800) {
    console.log("达到领取福利的时间,请领取福利!");
  }

  // 判断是否达到领取更多福利的时间(60分钟)
  if (elapsedTime >= 3600) {
    console.log("达到领取更多福利的时间,请领取更多福利!");
  }

  startTime = currentTime; // 更新开始时间的时间戳
}

// 当用户离开阅读页面时调用该函数
function saveElapsedTime() {
  // 将已用时间保存到缓存中
  localStorage.setItem("elapsedTime", elapsedTime);
}

posted @   jialiangzai  阅读(15)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!

喜欢请打赏

扫描二维码打赏

微信打赏

点击右上角即可分享
微信分享提示