仅当新记录插入数据库时​​才设置ajax调用

时间:2016-06-28 09:55:32

标签: javascript php jquery mysql ajax

我希望从聊天列表到页面更新评论而不刷新页面,多数民众赞成我已经使用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可以发送一个新的评论插入通知页面?

3 个答案:

答案 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向客户端获取实时信息..