2012-01-24 37 views
3

好吧,以便长话短说我在jquery mobile envoirment中使用这个脚本。我在其中使用ajax来从数据库中获取结果。我目前工作,但它不会自动刷新。我已经阅读了许多关于如何使用设置间隔函数的在线文章,并且我已经尝试过。但是,当我尝试它时,它可以工作,但它会一直添加重复的内容(一遍又一遍地重复同一个数据库记录)。我似乎无法得到这个工作。任何帮助将非常感谢,提前感谢!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+"&nbsp;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+"&nbsp;Wants to be your friend<input type='hidden' value='"+friend+"' id='hidden4' /><button type='submit' id='add'>Accept</button><br />"); 
                 }); 
                } 
              }); 
       }, 1000); 
           }) 
        </script> 
+0

包括数据= eval(数据)在每个函数之前的成功函数 –

+0

即时通讯对不起你能否给我一个例子,不要刻意成为一个痛苦 –

回答

2

它会不断添加重复的内容,因为您使用的是append函数,该函数将添加到元素中的当前DOM。改为使用html(您可能还需要创建div标签)。有关更多信息,请参阅this SO question

1

如果使用

$('#member_alerts').html(yourcontenthere); 

那么就应该解决您的重复内容的问题。

1

如果您尝试在间隔内进行刷新,则应该在您的jquery ajax的回调中放置一个setTimeout。这将允许函数等到请求完成后再次调用函数。

我会将调用写入一个单独的函数,然后在页面加载时调用一次,并在每次ajax请求完成时用setTimeout(myFunction,1000)递归地调用它。这会阻止您同时向服务器发送多个请求,这可能会导致问题,就像使用setInterval一样。

相关问题