好的,总而言之,我在jquery移动设备中使用这个脚本。我在其中使用ajax从数据库中获取结果。我目前正在工作,但它不会自动刷新。我已经阅读了很多关于如何使用设置间隔功能的在线帖子,我试过了。但是,当我尝试它时,它可以工作,但它不断添加重复的内容(一遍又一遍的相同的数据库记录)。我似乎无法让这个工作。任何帮助将非常感谢,提前感谢!
这是我的代码(*我没有删除setinterval函数):
<script type="text/javascript">
$( document ).delegate("#member_home", "pagecreate", function()
{
var member= new Array();
$.ajaxSetup({cache: false})
$.ajax({
url: '/scripts/alert_display.php',
data: "",
isajax: 1,
dataType: 'json',
success: function(data)
{
$.each(data, function(key, val) {
var friend = val['friend'];
$('#member_alerts').append(friend+" Wants to be your friend<input type='hidden' value='"+friend+"' id='hidden4' /><button type='submit' id='add'>Accept</button><br />");
});
}
});
})
</script>
非常感谢您的帮助,所以为了清楚起见,我的代码现在应该是这样的吗?:
<script type="text/javascript">
$( document ).delegate("#member_home", "pagecreate", function()
{
var refreshId = setInterval(function()
{
var member= new Array();
$.ajaxSetup({cache: false})
$.ajax({
url: '/scripts/friend_request_display.php',
data: "",
isajax: 1,
dataType: 'json',
success: function(data)
{
$.each(data, function(key, val) {
var friend = val['friend'];
$('#member_alerts').html(friend+" Wants to be your friend<input type='hidden' value='"+friend+"' id='hidden4' /><button type='submit' id='add'>Accept</button><br />");
});
}
});
}, 1000);
})
</script>
答案 0 :(得分:2)
它不断添加重复内容,因为您正在使用append
函数,该函数会添加到元素中的当前DOM。请改用html
(您可能还需要创建div标签)。有关详细信息,请参阅this SO question。
答案 1 :(得分:1)
如果您使用
$('#member_alerts').html(yourcontenthere);
然后,这应该可以解决重复内容的问题。
答案 2 :(得分:1)
如果您尝试按间隔刷新,则应将setTimeout放入jquery ajax的回调中。这将允许函数等到请求完成后再次调用该函数。
我会将调用写入一个单独的函数,然后在页面加载时调用它一次,并在每次ajax请求完成时以setTimeout(myFunction,1000)递归调用。这将阻止您同时向服务器发出多个可能导致问题的请求,就像使用setInterval一样。