每隔5秒重新加载jquery JSON
我正在尝试制作一个动态listview,它每5秒钟重新加载一次更改。它在首次加载时完全加载,但我的设置间隔工作不正常。它每5秒运行一次,但即使已经做了更改,它也不会更新我的菜单 以下是我到目前为止得到的信息:每隔5秒重新加载jquery JSON,jquery,json,Jquery,Json,我正在尝试制作一个动态listview,它每5秒钟重新加载一次更改。它在首次加载时完全加载,但我的设置间隔工作不正常。它每5秒运行一次,但即使已经做了更改,它也不会更新我的菜单 以下是我到目前为止得到的信息: $(document).on('pageshow', function (){ var userid=1; $.mobile.loading('show'); $.getJSON("http://mypage.com/playermenu.php?callback=
$(document).on('pageshow', function (){
var userid=1;
$.mobile.loading('show');
$.getJSON("http://mypage.com/playermenu.php?callback=?&userid="+userid,
function(data){
var content = []
$.each(data , function(i,val){
content.push(val.list);
});
$("#games").html(content.join(""));
$('#games').listview('refresh');
$.mobile.loading('hide');
});
});
setInterval(function(){
$.mobile.loading('show');
$.getJSON("http://mypage.com/playermenu.php?callback=?&userid="+userid,
function(data){
var content = []
$.each(data , function(i,val){
content.push(val.list);
});
$("#games").html(content.join(""));
$('#games').listview('refresh');
$.mobile.loading('hide');
});
}, 5000);
$.mobile.load('show');5秒后开始,但未到达$.mobile.loading('hide')
感谢您的帮助:-)我认为您的用户id变量在setInterval的匿名函数中可能不可见。我认为您的用户id变量在setInterval的匿名函数中可能不可见。
var user\u id
在超时函数的不同范围内。将超时放在document ready块中,问题就解决了。此外,考虑重构代码以避免重复太多,提高可维护性。例如:
$(document).on('pageshow', function () {
var userid = 1,
url = 'http://mypage.com/playermenu.php?callback=?&userid=' + userid,
callback = function (data) {
var content = [];
$.each(data, function (i, val) {
content.push(val.list);
});
$('#games').html(content.join('')).listview('refresh');
$.mobile.loading('hide');
},
fetchData = function () {
$.mobile.loading('show');
$.getJSON(url, callback);
};
fetchData();
setInterval(fetchData, 5000);
});
var user\u id
与超时功能位于不同的范围内。将超时放在document ready块中,问题就解决了。此外,考虑重构代码以避免重复太多,提高可维护性。例如:
$(document).on('pageshow', function () {
var userid = 1,
url = 'http://mypage.com/playermenu.php?callback=?&userid=' + userid,
callback = function (data) {
var content = [];
$.each(data, function (i, val) {
content.push(val.list);
});
$('#games').html(content.join('')).listview('refresh');
$.mobile.loading('hide');
},
fetchData = function () {
$.mobile.loading('show');
$.getJSON(url, callback);
};
fetchData();
setInterval(fetchData, 5000);
});
你应该认真考虑重构你的代码你有没有遇到任何控制台错误?在“show”遍历每一行之后,您是否尝试过console.log(“test”),以查看哪一行(如果有的话)出错?您将重复相同的代码块两次。将它放在一个函数中,并根据需要从多个位置调用该函数。你应该认真考虑重构你的代码,你有没有遇到控制台错误?在“show”遍历每一行之后,您是否尝试过console.log(“test”),以查看哪一行(如果有的话)出错?您将重复相同的代码块两次。将它放在一个函数中,并根据需要从多个位置调用该函数。以这种方式维护的代码更少。哦,是的。。。这就成功了。不知道你在重构方面遇到了什么?你能解释一下吗。通过重构,我们基本上是指我所做的:消除所有的重复,并将其压缩成更易于维护的块。哦,是的。。。这就成功了。不知道你在重构方面遇到了什么?你能解释一下吗?通过重构,我们基本上是指我所做的:消除所有重复,并将其压缩成更易于维护的块。