jquery - 仅当先前的重新加载完成时才使用 jquery 重新加载页面

标签 jquery refresh

我有一个页面当前每 10 秒刷新一次。该页面运行一系列数据库查询并显示结果。

问题是,有时查询需要长达一分钟的时间才能运行,但页面仍然每 10 秒刷新一次,因此我最终会运行 6 组数据库查询,依此类推。我知道这一点,因为我将操作以及查询的开始和结束时间记录在数据库中。

$(document).ready(function() {
var refreshId = setInterval(function() {
       $("#content").load('myurl.php?id=1');                        
    }, 10000);                         
});

如何更改它,以便仅在页面处理完查询或 10 秒(以最长者为准)时才进行刷新?

最佳答案

如果最后一个尚未完成,为什么不直接设置一个标志并跳过重新加载?类似以下内容(未经测试但显示了基本思想)

var loading = false;

var refreshId = setInterval(function() {
       if (loading) 
           return;

       loading = true;
       $("#content").load('myurl.php?id=1', function() {
           loading = false;
       });                        
    }, 10000);                         
});

关于jquery - 仅当先前的重新加载完成时才使用 jquery 重新加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3617688/

相关文章:

jquery - 如何在 jquery 中使用淡入淡出进行前置?

javascript - 隐藏选定类别的特定行

javascript - 如何 "enable"jquery bootgrid 网格/表

php - 在不使用 jquery/ajax 的情况下自动将新记录插入表中时,用新记录更新页面的另一种方法是什么

PHP 重定向不适用于包含 SQL 查询的脚本

javascript - 如何在 x 轴上使用 Flot 的选择图和时间?

javascript - 使用 jquery 刷新选择?

javascript - 模态窗口和 Div 刷新

ios - 使用拉动刷新继续随机索引?

Android Google Maps V2 不刷新