2009-04-01 6 views
3

私にはこのような状況があります。私は1日の出来事のリストを持っているページを持っています。そしてこれらの出来事は彼らのステータスを「確認済み」または「キャンセル済み」に変更することができます。jQueryまたはASP.NET MVCでサーバーイベントをトリガする方法はありますか?

しかし、たとえば「Confirmed」をクリックすると、このステータスがSQL Serverに保存され、このステータスは「Confirmed」と表示されます。しかし、私がイベントステータスを変更したときに他の人がこの同じページを開いた場合、この人は新しいステータスを見ることはありません。彼はページを再読み込みするかどうかしかわかりません。

5 ... 10 ... 15秒ごとにページをリフレッシュするAjaxセットTimeOutがあることは知っています。しかし、jQueryまたはASP.NET MVCトリガーがあれば、私はイベントステータスを変更すると、サーバーはブラウザの更新で応答すると思っていました。

これについての解決策はありますか?

ありがとうございます!

答えて

1

オプション1jQuery Timerを使用し、X秒ごとにページのコントロールを更新してください。 (ページ全体をリロードする必要はなく、確認/キャンセルされた状態のコントロールの状態だけでなく、サーバーが新しい値を返した場合にのみ変更することもできます)。

オプション2:Silverlight 2以降を使用して、サーバーからページのイベントを引き出すことができます。

ヒント:コントロールの状態(確認/キャンセル)を更新すると、初期状態もパスします。したがって、1人のユーザーがステータスを確認からキャンセルに更新した場合、このステータスを確認からキャンセルに更新しようとする別のユーザーがフレンドリーなエラーメッセージを受信します。

+0

どちらのオプションも私には適していません...--(イベントステータスを変更すると、他のページを更新する必要があります。 – AndreMiranda

+0

オプション1が動作します... –

+0

次に、この " –

0

要約:いいえ。

サーバーは、ページの送信先を覚えていません。サーバーがブラウザにページを送信すると、サーバーは接続を終了します。このため、サーバーは、リフレッシュ命令または新しいページをどこに送信するかを知りません。 Webページ上で「リアルタイム」更新を行うには、ブラウザが呼び出しを開始する必要があります。

0

ASP .NETで非同期ハンドラを使用して実装できます。つまり、サーバー上の更新イベントを購読することができ、サーバーはその間にワーカースレッドを消費しない要求を保持し、ステータスが更新されると要求が終了し、新しいステータスの応答が返されますクライアントに送信されます。

関連する問題