javascript - 首先使用 ajax 加载页面,然后逐渐增加间隔

标签 javascript jquery intervals

我目前正在我的一个网站上使用此代码,
我希望 test.php 立即加载,但它会等到间隔之后。

然后如果每分钟继续一次,直到页面关闭。这可能会导致非常大的带宽使用。

$(document).ready(function () {
    setInterval(function() {
        $.get("test.php", function (result) {
            $('#id').html(result);
        });
    }, 60000);
});

我想要实现的是。

在页面加载时加载 test.php。
然后每 60 秒加载一次页面
如果页面已打开 10 分钟,则间隔时间加倍至 120 秒。
20分钟增加至180秒间隔
30分钟增加至240秒间隔
等等。

感谢您的帮助

最佳答案

您可以使用 setInterval 来管理每 10 分钟增加的间隔,并使用 setTimeout 来使用该间隔。要让代码在页面加载时立即执行,只需稍微重新排列一下代码:

$(document).ready(function () {
    var interval = 60000;

    setInterval(function () {
        interval += 60000;
    }, 600000); // every 10 minutes

    (function loop() {
        $.get("test.php", function (result) {
            $('#id').html(result);
        });
        setTimeout(loop, interval); // repeat after interval
    })(); // execute immediately
});

关于javascript - 首先使用 ajax 加载页面,然后逐渐增加间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46135814/

相关文章:

javascript - 将 JavaScript Date 对象转换为不同的时区

javascript - Highcharts 散点图数据点悬停

javascript - 使用 jquery 查找 p 内具有特定类的图像标签

javascript - 将数组解析为等间隔JS

javascript - 如何在 Node.js 中循环设置背景动画

javascript - 我在这个 javascript 计算中做错了什么?

javascript - .单击包含 radio 的列表 - 无法直接选择 radio

jquery - 在 Grails 应用程序中放置何处以及如何访问 jQuery 插件?

javascript - 如何在列表中的按钮上按间隔进行触发点击

mysql - 对于不存在的数据返回空行