Несколько вызовов AJAX на одной странице - PullRequest
0 голосов
/ 04 мая 2009

Я пытаюсь создать приложение чата с jQuery без необходимости использовать setTimeout для минимизации количества запросов ajax:

function checkChat(){    
  new jQuery.ajax({
        'url'     : './chat/check.php',
        'cache'   : false,
        'success' : function(messages) {
                      if( messages.length ) {
                          $("#empty_chat").append(messages);
                          //write to chat wall
                       }
                       checkChat();
                   }
   });
}

На простой странице, которая отлично работает, но на странице, где есть другие события ajax (например, навигация), запрос ставится в очередь, и ничего не появляется, пока сообщения пусты.

Курсор также находится в состоянии ожидания.

Есть ли способ решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 04 мая 2009

Эффект запросов AJAX, поставленных в очередь, наиболее вероятен из-за ограничения количества активных запросов к одним и тем же доменам, которое по умолчанию равно 2 для большинства браузеров.

0 голосов
/ 04 мая 2009

Не совсем, если вы не хотите заглядывать в Comet, вам все равно нужно будет опрашивать сообщения, и setTimeout в порядке.

Рекурсия, которую вы настроили там с рекурсивным вызовом checkChat (), должна быть установлена ​​в setTimeout, иначе вы переполните стек lol

setTimeout(checkChat,2000);

и нужно удалить нового оператора и просто сделать

jQuery.ajax или $ .ajax

Комета и JQuery

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...