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

如何让自动刷新div的脚本在页面初始加载时执行且每3秒刷新?

解决脚本初始延迟执行的问题

嘿,这个问题很好解决——你当前的脚本之所以要等3秒才开始工作,是因为setInterval默认会在指定的时间间隔后第一次执行逻辑。要实现「页面加载完成立刻执行,之后每3秒重复」,只需要把检查逻辑抽成独立函数,先手动调用一次,再启动定时器就可以了。

修改后的完整脚本

jQuery(document).ready(function($) {
    // 把核心检查逻辑封装成独立函数
    function updateAndCheckVsDiv() {
        $.ajax({
            // 👉 记得补充你的AJAX请求地址,原脚本里缺失了这个关键参数
            url: '你的目标接口地址',
            success: function(data) {
                var newContent = $('<div />').append(data).find('div#vs').html();
                var $vsDiv = $('#vs');

                // 对比内容是否更新,有变化才替换
                if ($vsDiv.html() !== newContent) {
                    $vsDiv.html(newContent);
                }

                // 检查高度并添加/移除类名
                var windowHeight = $(window).height();
                var divHeight = $vsDiv.height();
                if (divHeight > windowHeight * 0.85) {
                    $vsDiv.addClass('你的目标类名');
                } else {
                    // 可选:当高度回到85%以下时移除类名
                    $vsDiv.removeClass('你的目标类名');
                }
            }
        });
    }

    // 页面加载完成后立刻执行一次核心逻辑
    updateAndCheckVsDiv();
    // 之后每3秒重复执行
    setInterval(updateAndCheckVsDiv, 3000);
});

关键调整说明

  • 把原本嵌套在setInterval里的AJAX逻辑抽成了updateAndCheckVsDiv()函数,让代码更清晰也更易复用
  • 在document.ready回调里先手动调用这个函数,实现初始加载即执行的需求
  • 保留setInterval来设置后续每3秒的重复执行,和你原本的定时需求一致

额外小提示

  • 一定要补全AJAX的url参数,不然请求会直接失败,原脚本里漏掉了这个必要项
  • 如果需要在高度低于85%时移除类名,示例里的removeClass逻辑可以保留,不需要的话删掉就行
  • 可以给AJAX加上cache: false,避免浏览器缓存旧的响应内容,确保每次都拿到最新数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:52:50