繁体   English   中英

仅在将新记录插入数据库时​​设置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网络工作者

浏览器上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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM