[英]How to inform and update a client when a new record inserted in mysql database using node js and socket.io
[英]Set ajax call only when the new record inserted to database
我想在不刷新页面的情况下从聊天列表中获取更新的评论,这就是我使用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中发送新的注释插入通知页面?
最佳做法是使用HTML5 WEB WORKERS
。
浏览器上JavaScript的问题在于它在单个线程上运行。 换句话说,两个脚本或进程不能同时运行。 如果要在页面加载后处理JavaScript,则最终用户无法与页面动态交互。 JavaScript在处理其他内容时将不会处理UI事件。 如果您在页面加载之前进行了较大的处理,则最终用户必须全部等待,这真是糟糕的用户体验。
您可以使用websocket,例如socket.io。 这样您就可以将通知从服务器发送到客户端。 因此,当您从API(服务器)中的聊天记录(古代)中接收数据时,更新数据库后,您将必须向客户端发送“通知”。
当客户收到通知时,您可以拨打AJAX电话:
socket.on('notification', function(){
doYourAJAXStuff();
});
您可以使用socket.io api将实时信息获取到客户端。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.