我有一个页面当前每 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/