2011-11-12 15 views
2

私はテスト用のdjangoアプリケーションを持っています。Djangoの更新ページ他のユーザーがデータを変更する場合

テストでは、すべてのユーザーに同じ質問が表示されます。

ユーザーが正しく答えると、他のアクティブユーザーのブラウザに信号を送信して次の質問に更新することができます。

私はdjangoのシグナルについて学んでいましたが、私は彼らと一緒に仕事を学んでいましたが、クライアントのブラウザに "リフレッシュシグナル"をどのように送信するのかは今のところありません。

特定の値(実際の質問)が変更されたかどうかをチェックし、ページをリロードすると、この言語が分からず、わかりやすい情報が混乱しているかどうかを確認するJavaScriptコードでできます。

誰かが私を助けることができますか?

多くのありがとうございます。

+0

可能重複:http://stackoverflow.com/questions/5479741/django-push-http-response-to-users – Spike

答えて

4

はここにいくつかのリンクです。しかし、あなたのウェブページを定期的に(例えば5秒ごとに)ポーリングすることができます。

のjavascriptのコード/ jqueryのは、次の

setInterval(function(){ 
    $.post("your_ajax_handler_url/is_answerd", userId, function(xhr){ 
     if(xhr.responseText == "answered"){ 
      location.reload(true); 
     } 
    } 
}, 5000); 
+0

コードをありがとう。しかし、私は問題がある、私は情報を5秒ごとにポストを送信するが、私はジャンゴビューを投稿を処理しないでください pydevのブレークポイントはそれを渡さない –

+0

自動応答:あなたはデコレータを追加する必要がありますcsrf_exempt –

2

これは、Djangoのどんな信号でもありません。 djangoのシグナルはサーバー側のフックで、特定の状況が発生したときにサーバー上でタスクを実行できます。

ブラウザに「更新」を送信するには、Cometなどのサーバープッシュアプ​​ローチを使用する必要があります。あるいは、クライアントに定期的にサーバーをポーリングして更新を求めるようにすることもできます。ブラウザにサーバーからイベントを送信するための既存の方法はありません

How to implement Server push/long polling/comet using PHP and Javascript

How do I implement basic "Long Polling"?

+0

情報ありがとうございます。私は彗星について読んだことがありますが、それは私のプロイェクトにとってはあまりにも強力だと思います。私はjavascriptのオプティオンを使ってアップデートをチェックします。多くのありがとう –

-1
あなたがCOMENTている必要なもの

(http://en.wikipedia.org/wiki/Comet_%28programming%29)と竜巻(HTTPのような可能性があり://www.tornadoweb.org/)

関連する問題