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

如何实现带缓存的JavaScript数字计数器,刷新页面后保留上次计数

实现方案

核心使用浏览器内置的localStorage持久化存储能力实现,每次计数器更新时同步存储最新值,页面加载时优先读取已存储的计数作为初始值即可。

完整修改后代码

JavaScript代码

function animateValue(id) {
  // 定义本地存储的key,避免和其他存储项冲突
  const COUNTER_STORAGE_KEY = 'custom_page_counter'
  const obj = document.getElementById(id);
  // 优先读取本地存储的历史计数值,无存储值时用元素初始值
  const savedCounter = localStorage.getItem(COUNTER_STORAGE_KEY)
  let current = savedCounter ? parseInt(savedCounter) : parseInt(obj.innerHTML);
  // 初始化时更新页面显示的计数
  obj.innerHTML = current

  setInterval(() => {
    current++
    // 同时更新页面展示和本地存储
    obj.innerHTML = current
    localStorage.setItem(COUNTER_STORAGE_KEY, current)
  }, 1000)
}

animateValue('value')

HTML代码(无需修改)

<h1>
  <div id="value">1</div>
</h1>

说明

  • 该方案仅在同一浏览器的同一域名下生效,清理浏览器本地缓存会重置存储的计数值
  • 如果需要实现跨设备、跨浏览器的计数同步,需要对接后端服务存储计数数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 02:45:03