Ajax-вызов открывает слишком много соединений? - PullRequest
0 голосов
/ 03 марта 2012

У меня небольшая проблема с моей веб-страницей, которую я обновляю с помощью ajax. Когда я нахожусь на своей странице некоторое время (около часа), он перестает загружаться, и я не могу отобразить ни одну из своих страниц в браузере. У меня только появилась эта проблема, так как я добавил этот (упрощенный) javascript на свою страницу:

var interval;

interval = setInterval('UpdateComs()',5000);


function FuncGo() {

  $.post('data.php', { profile: pid }, function(data) {

    $('.holder').html(data);

  });

}

Поскольку мой сервер не работает, и это не может быть проблемой, я подумал, что это может быть вызвано слишком большим количеством соединений? Может ли вышеизложенное открывать более одного соединения?
А если это так, стоит ли мне их как-то закрывать?
Извините за все вопросы, но я не слишком знаком с тем, как работают связи .. Спасибо за любую помощь или идеи

1 Ответ

0 голосов
/ 04 марта 2012

Я подозреваю, что произошла случайная ошибка (соединение обрывается из-за сетевого трафика, возможно тайм-аут), который останавливает setInterval. Всегда передавайте функцию annonomus (не строку) в setTimeout или setInterval и вызывайте следующую функцию только после завершения предыдущей.

function UpdateComs() {
 $.ajax({
  type: "POST",
  url: 'data.php'
  data: {profile:pid},
  async: true,
  cache: false,
  timeout: 10000,
  success: function(data){
    $('.holder').html(data);
    setTimeout(function(){UpdateComs(); },5000);
  },
  error: function(XMLHttpRequest, textStatus, errorThrown){
    //do what you want with the error
    setTimeout(function(){UpdateComs(); },5000);
  }
 });
}
...