0

asp.net Web サイトに gmail スタイルのチャットを実装する必要があります。この点に関して、ここや他のフォーラムで...COMETとその利点について多くのことが言われていることを今私は知っています....

私は最近、このサイト www.indyarocks.com を見ました。彼らのウェブサイトのプロファイルを作成したところ、チャットのために非同期リクエストを送信し、サーバーが返すデータがあるまでページが待機し、ページが返された後であることがわかりました....(つまり、ステータス 200 OK が表示され、再びリクエストがディスパッチされます。

私は自分のウェブサイトにチャットを実装しました.5秒後に新しいチャットのためにデータベースをポーリングします...だから、ASP.NET AJAXを使用してリクエストをWebメソッドに送信し、サーバーでループし続けるかどうかを知りたいです返すデータがあり、それを呼び出したWebページに戻りますが、それは良いアプローチであり、そうでない場合、そのデメリットは何ですか????

私が使用できるコード

<WebMethod(EnableSession:=True)> _
    Public Function looper(ByVal x As String) As String
        Dim flag As Boolean = False
        While (flag = False)
            Dim ans As String = getScalar("select 1 from Chat where sent_by=1")
            If Not ans Is Nothing Then
                flag = True
            End If
        End While
        Return "x"
    End Function

ここで、データが得られるまでサーバーをループできます

いずれにせよ、ポーリングアプローチよりも優れています????

このアプローチを改善するための提案はありますか???

4

1 に答える 1

0

クライアント側からのポーリングアプローチよりも優れています

なぜ、なぜなら

  • サーバーのラウンドトリップを回避 - 多くの時間を節約
  • サーバーへの不必要な呼び出しを回避します (データが利用できない場合でも、ポーリング アプローチは webmethod を呼び出します)。

一方、現在のCOMETアプローチでは、サーバーが更新されたデータを返す場合にのみ新しいリクエストがクライアントから行われるため、JavaScriptからのサーバー呼び出しは最小限です。

そのため、現在のデザインに遅れずについていく

于 2010-02-22T13:10:24.593 に答える