зацикливание веб-метода до тех пор, пока не будут найдены данные, а затем возврат из веб-службы для приложения чата в asp.net - PullRequest
0 голосов
/ 22 февраля 2010

Мне нужно реализовать чат в стиле gmail на моем сайте asp.net. теперь я знаю, что здесь и на других форумах было сказано много о комете и его приличиях ....

Я недавно видел этот сайт www.indyarocks.com, и когда я профилировал их веб-сайт, я обнаружил, что для чата они отправляют асинхронный запрос, и страница ожидает, пока у сервера не будет данных для возврата, и только после того, как страница вернется. .. (я имею в виду, он показывает статус 200 OK) и снова отправляется запрос.

Я установил чат на своем веб-сайте, в котором через 5 секунд я опрашиваю базу данных для любого нового чата ... поэтому я хочу знать, отправляю ли я запрос с использованием ASP.NET AJAX веб-методу и продолжаю цикл сервер до тех пор, пока у него не появятся какие-то данные для возврата, а затем вернется на веб-страницу, на которой он назван, это хороший подход, а если нет, то в чем его недостатки ????

код, который я могу использовать

<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

здесь я могу перебрать сервер, пока на нем не будет данных

в любом случае лучше, чем подход к опросу ????

У кого-нибудь есть предложения по улучшению этого подхода ???

1 Ответ

0 голосов
/ 22 февраля 2010

Это лучше, чем опросный подход со стороны клиента

Почему , потому что

  • Избегает обхода сервера - экономит много времени
  • И избегайте необоснованных обращений к серверу (подход с использованием опросов вызывает веб-метод, даже если данные недоступны)

С другой стороны, в вашем текущем подходе к COMET запросы к серверу минимальны из javascript, поскольку новый запрос будет сделан только от клиента, если сервер вернет обновленные данные.

Так что следите за текущим дизайном

...