我有一个脚本从另一个脚本调用一些json数据但是页面加载时有一个延迟。我试过定位" setInterval(函数)"但是当脚本第一次运行时,我无法加载数据。
我是否正确设置了setInterval。
$(document).ready(function() {
setInterval(function(){
$.getJSON("get_data.php", function(json){
json = json[0].data;
var tr ;
for (var i = 0; i < json.length; i++) {
tr = $('<tr/>');
tr.append("<td width='33%'><div class='clientname-text'>" + json[i].ClientName + "</div></td>");
tr.append("<td width='33%'><div class='roomname-text'>" + json[i].RoomName + "</div></td>");
tr.append("<td width='33%'><div class='time-text'>" + json[i].RoomFromTime + " - " + json[i].RoomToTime + "</div></td>");
$('table').append(tr);
}
});
}, 60000);
});
非常感谢你的时间。
答案 0 :(得分:2)
将所有这些放在一个函数中:
$.getJSON("get_data.php", function(json){
json = json[0].data;
var tr ;
for (var i = 0; i < json.length; i++) {
tr = $('<tr/>');
tr.append("<td width='33%'><div class='clientname-text'>" + json[i].ClientName + "</div></td>");
tr.append("<td width='33%'><div class='roomname-text'>" + json[i].RoomName + "</div></td>");
tr.append("<td width='33%'><div class='time-text'>" + json[i].RoomFromTime + " - " + json[i].RoomToTime + "</div></td>");
$('table').append(tr);
}
然后调用该函数,然后使用该函数再次调用setInterval
。这样,该函数将立即执行,您可以毫不拖延地加载数据。
答案 1 :(得分:1)
您需要在setInterval
命名函数中调用该函数,调用它,然后使用setInterval
继续调用它,如下所示:
$(document).ready(function() {
function get_data() {
$.getJSON("get_data.php", function(json){
json = json[0].data;
var tr ;
for (var i = 0; i < json.length; i++) {
tr = $('<tr/>');
tr.append("<td width='33%'><div class='clientname-text'>" + json[i].ClientName + "</div></td>");
tr.append("<td width='33%'><div class='roomname-text'>" + json[i].RoomName + "</div></td>");
tr.append("<td width='33%'><div class='time-text'>" + json[i].RoomFromTime + " - " + json[i].RoomToTime + "</div></td>");
$('table').append(tr);
}
});
}
get_data();
setInterval(get_data,60000)
});
答案 2 :(得分:0)
她再来一个解决方案
DateTime.Parse
&#13;
setInterval(function(){
$.getJSON("get_data.php", function(json){
json = json[0].data;
var tr ;
for (var i = 0; i < json.length; i++) {
tr = $('<tr/>');
tr.append("<td width='33%'><div class='clientname-text'>" + json[i].ClientName + "</div></td>");
tr.append("<td width='33%'><div class='roomname-text'>" + json[i].RoomName + "</div></td>");
tr.append("<td width='33%'><div class='time-text'>" + json[i].RoomFromTime + " - " + json[i].RoomToTime + "</div></td>");
$('table').append(tr);
}
});
return arguments.callee;
}(), 60000);
&#13;
setInterval 中的自我调用功能。
jsfiddle链接:https://jsfiddle.net/4gkzqhgq/1/