簡體   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