4

誰かがライブ通知を行う正しい方法を教えてくれますか

たとえば、Mysql に追加された新しい行を知る

PHPファイルが変更されたかどうかを知る???

どうすればいいですか?

4

2 に答える 2

8

を使用してサーバーの更新を定期的にチェックするか、setInterval()javascript でロングポーリングを使用することができます。の利点はsetInterval()、サーバー上で長時間接続を開いたままにしないことですが、サーバー呼び出し間の「ダウンタイム」中に更新が行われる可能性があります。ロングポーリングは、新しい情報を受信するまで接続を開いたまま待機するため、ほぼ瞬時に更新されます。しかし、明らかに、欠点は、接続がいたるところで開いたままになっていることです。

定期チェック...

setInterval(function(){
  $.get("updates.php", {}, function(results){
    if ($(results).length) {
      $("results").each(function(){
        // do something with update messages
      });
    }
  });
}, 30000); // Every 30 seconds.

PHP/jQuery を使用したロング ポーリングの例:

PHP と jQuery を使用したロング ポーリングの例は、http://blog.perplexedlabs.com/2009/05/04/php-jquery-ajax-javascript-long-polling/にあります。

于 2009-12-21T20:30:10.620 に答える
2

データベース トリガーを使用して、特定のテーブルの変更を監視し、通知データを新しいテーブルに挿入できます。それで。Jquery と ajax を使用して定期的にその db テーブルにクエリを実行します。

ワークフロー:

  1. テーブルusersの挿入、更新、および削除を監視するトリガーを作成する
  2. が変更されると、トリガーは、変更内容の詳細をusers示す新しいレコードを挿入します。notifications
  3. 定期的なアップデータを使用して、notifications新しいレコードのテーブルをチェックし、それらをユーザーに表示します。

この単純なワークフローは、思ったほど簡単に実装できないかもしれませんが、効率的な方法で作業を完了できます。

于 2009-12-21T20:35:15.570 に答える