データベースの変更を動的にリッスンするにはどうすればよいですか?
ショッピング ウェブサイトを作成したいのですが、誰かが製品を購入したときに「誰かがあなたの製品を購入しました」のようなメッセージを表示したいのですが、データベースの変更をリッスンする方法はありますか? ?データベースに定期的にクエリを実行すると、大量のリソースが消費されるはずです。 (1回/1秒)。みなさん、ありがとう
-----解決策--------------------------------投稿者の意味、意味はわかりました フロントデスクの誰かが注文をすると、バックエンドのスタッフは、更新後に注文情報を見るのではなく、すぐに注文情報を取得できます。
現在、次のメソッドがあります。
1. 顧客が注文するとき、データを挿入するときに管理者のメールアドレスにメールを送信します。QQ が通知してくれるので、QQ メールを使用するのが最適です。こうすることで、誰かが注文したことをすぐに知ることができます。もちろん、テキスト メッセージを使用することもできます (ただし、お金がかかり、時間がかかります)。
2. JS setInterval を使用して、データベースに変更があるかどうかを 3 秒ごとに確認します。変更がある場合は、QQ または Want Want 通知音を鳴らして、新しい注文があることをバックエンド スタッフに知らせることができます。
私のコードを投稿してください:
var int=setInterval("clock()",20000);<br />
function clock(){<br />
$("#call_div").html('<li>正在刷新屏幕。。。</li>');<br />
var url = "extend/new_dd.php?cache="+Math.random();<br />
$.get(url,function(result){<br />
$("#call_div").html(result);<br />
});<br />
}
ログイン後にコピー
3. JS setInterval も使用されますが、データベースのクエリには使用されません。顧客が注文すると、データの挿入時に $_SESSION[odrer_state] の内容が 1 に変更され、その後、JS setInterval を使用して 3 秒ごとに内容が取得されます。 1 の場合、バックエンド スタッフがキー ポイントを認識した場合、それを処理し、$_SESSION[odrer_state] の内容を 0 に変更します。この利点は、クエリが多すぎるためにデータベース リソースが消費されないことです。
実際には多くの方法があり、どれが最適であるかによって異なります。私のウェブサイトにあるこの機能の写真を添付します