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

如何阻止库存倒计时在页面刷新时重置?

解决库存计数器页面刷新重置问题

你的核心问题是没有正确利用localStorage读取和保存库存值,且代码执行顺序错误,导致localStorage的逻辑完全未生效。以下是修正后的完整代码及关键改动说明:

修正后的代码

<span class="qty" id="qty"></span>

<script>
    var qtyId = document.getElementById("qty");
    // 优先从localStorage读取库存,不存在则使用初始值57
    var qty = localStorage.getItem('saved_qty') ? parseInt(localStorage.getItem('saved_qty')) : 57;

    setQty(qty);

    function setQty(qty)
    {
        qtyId.innerHTML = qty;
        // 每次更新库存后,将当前值存入localStorage
        localStorage.setItem('saved_qty', qty);

        if (qty === 0) return;

        var parts = Math.floor((Math.random() * 3) + 1);
        if (parts > qty) parts = qty;

        var msec = Math.floor(((Math.random() * 15) + 15)*1000);

        qty -= parts;

        setTimeout(function() {
            setQty(qty);
        }, msec)
    }
</script>

关键改动说明

  • 调整执行顺序:先读取localStorage再初始化计数器,确保刷新页面时优先加载保存的库存值
  • 实时保存状态:每次更新页面显示的库存后,立即将当前值存入localStorage,保证下次刷新能获取最新状态
  • 类型转换处理:localStorage存储的是字符串,读取时用parseInt转为数字,避免后续计算出错
  • 移除无效逻辑:删除你代码中未定义的new_countdown等无效变量和逻辑

现在刷新页面,计数器会从上次停止的数值继续递减,不会再重置为初始值57。

内容的提问来源于stack exchange,提问作者Virgílio Dornelas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 11:42:13