我有一个应用程序从表中获取30个数据并将其显示在数据表中。它在DT中每页显示10个。
现在,每一行都有三个要素: -
<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>
如您所见,标签有一个onload事件,它调用此函数: -
function chat_review(post_id)
{
if($('#table tr').length > 1 && $('td[colspan]').not('[colspan=1]'))
{
$.post('<?php echo base_url();?>ajax-function',
{'data':'chat',
'id': post_id,
'action': 'count'},
function(data) {
$("#chatReviewDiv_"+data.id).empty();
if(data.chatCount > 0)
{
$("#chatReviewDiv_"+data.id).append("<div class='notify'>"+data.chatCount+"</div>");
}
setTimeout(function(){
chat_review(data.id)
},25000);
}, 'json');
}
}
这实际上是服务器轮询,每25秒检查一次。此功能的目的是检查是否已收到此帖子的新消息。
现在,由于datatable使用所有数据加载表,但只是在页面中显示它们,100个数据意味着将调用此函数100次。因此,有时浏览器也变得没有响应。
有没有解决方案可以解决这个问题?