AJAX Jquery刷新所有内容,但我只想要新内容

我可能正在重新发明轮子,但那是故意的。 我正在尝试使用PHP HTML MySQL CSS创建一个实时聊天应用程序。 它在网络上运行良好,并且每秒都能获取新内容。 在IE中你可以注意到每秒闪烁一次,看起来它一次又一次地拉动所有数据,即使没有新内容,我也不喜欢这样。

这是我的刷新JS代码:

$(document).ready(function() { $("#data").load("data.php"); var refreshId = setInterval(function() { $("#data").load('data.php'); }, 1000); $.ajaxSetup({ cache: false }); }); 

data.php只需一段时间循环遍历所有数据库记录并显示它们:

  while ($row = mysql_fetch_array($result)) { echo "

". $poster .": ". $message ."
". date('D d M - g:i:s a', strtotime($row['when'])) ."

"; }

我看了看互联网上的解决方案,褪色等,我想不出怎么做到这一点,肯定有一些好的,简单有效的方法?

您应该将时间戳传递给上次更新的服务器,并仅检索新内容。

我个人在我的shoutbox中使用的最佳解决方案是使用全局变量在加载的数据中设置变量。

例:

  

HTML CONTENT GOES HERE

然后,当您调用data.php时,可以使用此新参数调用它。

 $("#data").load('data.php?var=' + global_var ); 

你的global_var可以是任何东西,从最后插入的ID,或上一个时间戳,或???

这是您需要的,您只需根据您的需要进行修改:

仅当将新内容添加到数据库时才刷新div的内容

这将传递页面加载的时间,并且仅在添加了新内容时才刷新数据,请参阅第一个答案。

祝一切顺利 ;)。