2012-02-16 2 views
1

я»Тринг, чтобы общаться как facebook чат :)отправить мульти запросов Ajax каждого 1 второго

Я использую эти запросы как

здесь, чтобы получить номер пользователей, и roomBody

$('.room_users,.room_body').each(function() { 
       var page = $(this).attr("page"); 
       var room_id = $(this).parents('.room').children('.roomy_id').attr("value") ; 
       var url  = page+room_id ; 
       window.setInterval(function() { $(this).load(url);}, 200); 
     }); 

Here To Get Room Lists 

     $('#room_list').each(function() { 
       var page = $(this).attr("page"); 
        var url = page ; 
        window.setInterval(function() { 
         $(this).load(url); 
        }, 60000); 
     }); 

как вы видите, мои запросы отправляются каждые 1 секунду, но не все запросы возвращают статус 202

много времени назад 404 не найдено

И запрос Некоторое время отправить два раза каждые 1 сек

Here is pic of this

ответ

1

Если сервер поддерживает websockets или любую форму кометы, например, длительный опрос, попробуйте использовать его. В то же время добавьте тайм-аут к вашему запросу И отправьте только следующий запрос ajax ПОСЛЕ предыдущего возврата или истечения срока ...

function updaterooms() { 
    $.ajax({ 
    type: "GET", 
    url: page, 
    async: true, 
    cache: false, 
    timeout:5000, 
    success: function(data){ 
     // do what you need with the returned data... 
     setTimeout('updaterooms()',1000); 
    }, 
    error: function(XMLHttpRequest, textStatus, errorThrown){ 
     $("#error").text("ERROR: " + textStatus + " (" + errorThrown + ")"); 
     setTimeout('updaterooms()',1000); 
    } 
    }); 
} 
0

Вместо рассылки спама сервер с запросами каждый второй, вы должны смотреть на Comet.

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

Смежные вопросы