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

如何用jQuery定时检测小时,触发AJAX加载offer.php更新优惠内容

小时级优惠自动更新jQuery实现方案

核心逻辑

  • 用全局变量存储上一次成功加载优惠的小时数,初始值设为-1保证页面首次加载必触发请求
  • 每分钟触发一次检测逻辑,仅当当前系统小时和存储的已加载小时不一致时,才发起AJAX请求拉取对应时段的优惠内容
  • 请求成功后更新存储的小时标识,避免同小时内重复发起无效请求

完整实现代码

首先在页面中加入优惠展示容器:

<div id="offer-container"></div>

引入jQuery后加入以下JS逻辑:

// 存储上一次成功加载优惠的小时标识
let lastLoadedHour = -1;

// 优惠加载逻辑封装
function loadOfferIfNeed() {
  const nowHour = new Date().getHours();
  // 小时未更新直接跳过,不发起请求
  if (nowHour === lastLoadedHour) return;

  $.ajax({
    url: 'offer.php',
    method: 'GET',
    data: { hour: nowHour },
    success: function(offerContent) {
      // 渲染优惠内容到页面
      $('#offer-container').html(offerContent);
      // 更新已加载小时标识
      lastLoadedHour = nowHour;
    },
    error: function() {
      // 请求失败不更新标识,下次分钟检测会自动重试
      console.warn('优惠内容加载失败,稍后重试');
    }
  })
}

// 页面加载完成后执行
$(function() {
  // 立即执行一次,避免等1分钟才显示首屏优惠
  loadOfferIfNeed();
  // 每60秒执行一次检测
  setInterval(loadOfferIfNeed, 60 * 1000);
})

可选优化点

  • 如果对时间精度要求极高,担心用户本地时间不准,可以在首次请求接口时返回服务端当前小时,后续基于本地计时累计更新小时标识,避免客户端时间异常导致的优惠错配
  • 可以在请求过程中给容器加加载状态提示,提升用户体验
  • 如果接口返回的是JSON格式的优惠数据,把success回调里的渲染逻辑改成对应字段取值拼接即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:06:07