只在新记录插入数据库时设置ajax调用


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

HTML5 Web Workers

JavaScript在浏览器上的问题是它运行在单个线程上。换句话说,两个脚本或进程不能同时运行。如果在页面加载后处理JavaScript,则最终用户无法与页面动态交互。JavaScript在处理其他事情时不会处理UI事件。如果你在页面加载之前处理一些大的东西,最终用户必须等待,这是一个可怕的用户体验。

可以使用websocket, socket。例如IO。这将允许您从服务器向客户端发送通知。因此,当你从API(服务器)中的聊天(客户端)接收数据时,在更新数据库之后,你必须向你的客户端发送一个"通知"。

当您的客户端收到通知时,您可以进行AJAX调用:

socket.on('notification', function(){
  doYourAJAXStuff();
});

您可以使用socket。IO API获取实时信息到客户端..