我想每 3 分钟刷新一次页面。它包含一个表格,其中每一行代表一个帖子的详细信息。
用户可以回复帖子,该通知将显示为带有 1(未读消息数量)的红色气泡。
我正在尝试使用简单的 Jquery轮询技术来实现这一点。但是,我做错了什么,它没有按我的预期工作。
我有一个像这样的html:
<?php
for($posts as $row)
{
if($entity == 'post')
{ $id = $row['id'];?>
<a href="javascript:void(0)" onclick="push_notification('<?php echo $entity;?>','<?php echo $id;?>')" title="Push Notification">
<img src="<?php echo(base_url())?>assets/images/icon/arrow_right.png" width="22" height="22" border="0" alt="Push Notification" onload="chat_review('<?php echo $id;?>')"/></a>
<a href="<?php echo base_url();?>admin/<?php echo $entity;?>/<?php echo $entity;?>_chat/<?php echo $id;?>" title="Chat">
<div class="ch_comment" id="chatReviewDiv_<?php echo $id;?>"><?php if($row['chat_count']>0){?><div class="notify"><?php echo $row['chat_count'];?></div><?php }?></div>
</a>
<?php
} }?>
现在这里是 onload 函数:
function chat_review(post_id)
{
$.post('<?php echo base_url();?>ajax-function',
{'data':'chat',
'id': post_id,
'action': 'select'},
function(data) {
alert(data.id);
if(data.chatCount > 0)
{
$("#chatReviewDiv_"+data.id).clear();
$("#chatReviewDiv_"+data.id).append("<div class='notify'>"+data.chatCount+"</div>");
} // process results here
setTimeout(chat_review(data.id),50000);
}, 'json');
}
是什么导致了这种突然的行为? 我该如何解决这个问题?该列表应调用 chat_review 函数 20 次(对于 20 个帖子)。然后 3 分钟后,每 20 个帖子将再次调用 chat_review。但目前,chat_review 被无限调用。