ボタンをクリックしたときに div の内容を変更したい。これはjqueryで簡単にできますが、それは私の側だけです。ページに接続するか、ページを更新すると、すべてのユーザーに対して変更されます。どうやってやるの?PHP(サーバーサイドスクリプト)を使用する必要があることを理解しています。何か案は?簡単にするために->ボタンをクリック->そのページのすべての訪問者のdivを変更します(もちろんページを更新した後)。
4 に答える
ここでの 1 つの質問は、セッション間の通信をどのように行うかということです。詳細はさておき、それを行う方法は 2 つあります。(1) クライアント側のポーリングを使用する方法と、(2) サーバー側のブロードキャストを使用する方法です。
ポーリングは簡単ですが、理想的ではありません。クライアント (javascript-ajax) は、サーバーの更新を (1 秒ごとまたは数秒ごとに) 継続的にチェックし、更新が発生すると、すべての更新/メッセージを適用します。問題は、これが重要な場合、クライアントが同期しなくなることです。場合によっては、それらが互いに遠く離れている可能性があり、サーバーはそれを認識しません。
サーバー側のオプションに関しては、cometd ( http://cometd.org/ ) を使用できます。基本的に、Web ブラウザーのアクションとメッセージの個々のセッションを同期する機能を提供します。他の SO の質問に記載されているこのチュートリアルでは、PHP-cometd と ajax のクイック スタートを取得できます: http://www.zeitoun.net/articles/comet_and_php/start
編集:このプロトコルの使用法をチェックしていましたが、どうやらgmailとfacebookの両方がそれを使用しているか、それのマイナーバリアントを使用しています。Facebook、Gmail はどのようにリアルタイム通知を送信しますか?を参照してください。GMail はどのように Comet を実装していますか? いくつかの興味深い読み物のために。
ajax を使用して、コンテンツのソースである DB を更新する php ページに投稿します...
ページの変更されたコンテンツを返す ajax 関数を実行してから、ページをリロードする必要があります。
私がすることは次のとおりです。
- ボタンがクリックされたとき: 新しい値をデータベースに保存します。
- AJAX (javascript) を使用して X 秒ごとに div を更新するようにタイムアウトを設定します。