如何每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);
});
非常感谢
答案 0 :(得分:2)
不使用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);
});
答案 1 :(得分:1)
如果您想每5秒调用一次函数,请使用setInterval
。 setInterval()
方法调用函数或以指定的时间间隔(以毫秒为单位)计算表达式。
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)
;