0

私は最近、オンラインで購入するためのウェブサイトを開発しました。私の問題は、新しい注文が MySQL に挿入されたときに管理ページで警告する通知を作成する方法です。この通知は、ウェブサイトの管理ページにアイコン番号として表示されるため、管理者がウェブサイトを開いたときに、顧客が新しい注文を行ったことを知ることができます。

JavaScript ajaxを使用する必要があることはわかっていますが、開始方法がわかりません。

私はいくつかのサンプルコードを持っています:

refreshInterval = 500
refreshTimeout = setTimeout(getNotificationCounts, refreshInterval);

function getNotifications() {
  $.ajax({
    url: 'path_to_your_php',
    type: 'POST',
    data: //put for example user_id but it cvan be handled by sesion as    
    dataType: 'json',
    success: function (data) {
      alert('You have' + data.total + ' new messages')
      refreshTimeout = setTimeout(getNotificationCounts, refreshInterval);
    }
  });
}
4

1 に答える 1

1

あなたの問題には2つの選択肢があります。あなたが探しているのは、永続的な http 接続です。

  1. ソリューションのブラウザ サポートが気にならない場合は、WebSocket を使用できます。これらは html5 API の一部ですが、すべてのブラウザーでサポートされているわけではなく、新しいものであるため、新しいバージョンでのみサポートされます。詳細はこちらhttp://www.html5rocks.com/en/tutorials/websockets/basics/
  2. 2 番目の選択肢はロング ポーリングです。基本的な考え方は、クライアントは定期的にサーバーに ajax 呼び出しを行いますが、すぐには返さず、サーバーに応答がある場合、または特定の時間が経過した場合に返されるというものです。単純なポーリングも行うことができますが、ほとんどの場合、理由もなくサーバーに対して多くの呼び出しを行うため、お勧めできません。ロング ポーリング技術は、コメット技術とも呼ばれます。それを調べて、もっと焦点を絞った質問をして戻ってきてください。

基本的な「ロングポーリング」を実装するにはどうすればよいですか?

ここでは、やりたいことの基本的な例を見つけることができます。こちらも詳細です。

于 2013-05-13T04:48:43.197 に答える