簡體   English   中英

數據庫更新時發出警報消息

[英]alert message when database updated

我正在用php創建一個聊天應用程序。

目的:當USER1邀請用戶2, 用戶2想要得到的是USER1有邀請他警告或彈出消息。

我所做的是-

user1邀請時,消息將存儲在數據庫中。 在用戶端,我曾經檢查數據庫是否已更新。 如果數據庫是更新的,我通常會顯示警報。 這是我在php和javascript上完成的,但並非一直都在工作。

這是個好方法嗎? 還有其他方法嗎?

使用Ajax定期向服務器發送請求。 響應將包含該用戶擁有的所有邀請。 響應可能采用JSON ,可以使用JavaScript輕松評估。

所有客戶端都可以使用jquery並定期發送以下請求:

function checkIfIAmInvited()
{
     jQuery.ajax({
       type: "POST",
       url: "some.php",
       data: "name=currentUser&",
       success: function(msg){
         if(msg.indexOf('uninvited') !== -1 )
         {
            alert( "You have been invited by " + msg );
            //Method to do stuff once I am invited
            iAmInvitedMethod();
         }
     });
}

要定期調用以上代碼,可以在jquery / javascript中使用以下代碼。 這將是定期撥打電話並將響應回復給您。 只要響應不包含“不請自來”的字符串,它就會發出警報並調用post方法函數。

可以使用以下代碼重復調用它。

window.setInterval("checkIfIAmInvited()", 5000);

這將每5秒檢查一次是否有邀請。 另外,為了更好地控制控件,可以使用諸如Timer之類的jquery插件重復執行某些操作。

使用(至少)兩次數據庫旅行是處理實時聊天的一種不好的方法。 如果您正在做一些存儲的聊天aka信息系統,那就很好。 但是考慮到您只需要保留文本一兩秒鍾,我將只使用SQL-Lite或另一個內存解決方案。 這將在您的服務器上更快,更輕松。

對於聊天和即時消息系統,您應該研究使用基於推的技術(例如Comet)。 該線程中的更多信息:jquery的實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM