如何每隔5秒提取一次数据?由于某种原因,无法工作
这是我的代码,但不起作用:
<script type="text/javascript">
$(document).ready(function(){
setTimeout(function() {
$.ajax({
url: 'test_api.php',
data: "", dataType: 'json',
success: function(rows) {
for (var i in rows) {
var row = rows[i];
var availability = row[3];
var hostName = row[2];
var intranet = row[6];
var timeRespons = row[4];
$('body').append("<b>availability: </b>"+availability+"<b> hostName: </b>"+hostName+
"<b> intranet: </b>"+intranet+"<b> timeResponse: </b>"+timeRespons) .append("<hr />");
}
}
});
}, 5000);
});
非常感谢
不要使用setTimeout
,而是使用setInterval
。
setTimeout
在指定时间过后运行一次。
setInterval
在指定时间连续运行,直到使用clearInterval
停止为止。
$(document).ready(function() {
setInterval(function() {
$.ajax({
url: 'test_api.php',
data: "", dataType: 'json',
success: function(rows) {
for (var i in rows) {
var row = rows[i];
var availability = row[3];
var hostName = row[2];
var intranet = row[6];
var timeRespons = row[4];
$('body').append("<b>availability: </b>" + availability +
"<b> hostName: </b>" + hostName +
"<b> intranet: </b>" + intranet +
"<b> timeResponse: </b>"+timeRespons)
.append("<hr />");
}
}
});
}, 5000);
});
如果您想每5秒调用一次函数,请使用setInterval
。setInterval()
方法以指定的时间间隔(以毫秒为单位)调用函数或计算表达式。
Where as setTimeout()
方法在指定的毫秒数后调用函数或计算表达式。
更改您的代码
setInterval(function() {
$.ajax({
url: 'test_api.php',
data: "", dataType: 'json',
success: function(rows) {
$('body').html(''); //Clear content
for (var i in rows) {
var row = rows[i];
var availability = row[3];
var hostName = row[2];
var intranet = row[6];
var timeRespons = row[4];
$('body').append("<b>availability: </b>"+availability+"<b> hostName: </b>"+hostName+
"<b> intranet: </b>"+intranet+"<b> timeResponse: </b>"+timeRespons) .append("<hr />");
}
}
});
}, 5000);
如果要覆盖body
内容,请使用$('body').html(htmlstring)
;
演示