我希望从聊天列表到页面更新评论而不刷新页面,多数民众赞成我已经使用ajax调用列表,但我必须每隔5秒调用此函数来检查是否插入了新聊天数据库,
$(document).ready(function(){
setInterval(function(){
$.ajax({
type:'POST',
url: baseUrl+"chat",
cache: false,
data: dataString,
crossDomain: true,
success: function(data){
var getData = JSON.parse(data);
if(getData.status == "success")
{
for(i=0;i<getData.chat.length)
{
$("chatList").text("");
$("chatList").append("<span class='black'>"+getData["chat"][i].name+" : <span class='blue'>"+getData["chat"][i].comment+"</span>");
}
}
else
{
alert(getData.message);
}
}
});
},5000);
});
所以我想知道是否有任何简单的方法可以做到这一点,或者从PHP MySQL可以发送一个新的评论插入通知页面?
答案 0 :(得分:2)
最佳做法是使用HTML5 WEB WORKERS
。
<强> HTML5 Web Workers 强>
浏览器上的JavaScript问题在于它在单个线程上运行。换句话说,两个脚本或进程无法同时运行。如果您在页面加载后处理JavaScript,则最终用户无法与页面动态交互。处理其他内容时,JavaScript不会处理UI事件。如果你在页面加载之前处理一些大的东西,那么最终用户必须全力以赴,这是一种糟糕的用户体验。
答案 1 :(得分:1)
例如,您可以使用websocket,socket.io。这将允许您从服务器向客户端发送通知。 因此,当您从API(服务器)中的聊天(客户端)接收数据时,在更新数据库之后,您将必须发送“通知”。给你的客户。
当您的客户收到通知时,您可以拨打AJAX电话:
socket.on('notification', function(){
doYourAJAXStuff();
});
答案 2 :(得分:1)
您可以使用socket.io api向客户端获取实时信息..