2012-03-12 7 views
0

Я установил сценарий опроса, который в основном проверяет уведомление, если есть какие-либо новые уведомления. Если они есть, они будут отображать их и удалять уведомление из очереди.Длинный опрос ajax issue

Я использую firebug, и когда я перезагружаю страницу, предыдущий опрос остается открытым и создается новый.

 function poll(){ 
     $.ajax({ 
      url: "test.php", 
      dataType: "json", 
      complete: poll, 
      timeout: 30000, 

      success: function(data){ 
       $.gritter.add({ 

        title: 'This is a regular notice!', 

        text: data.message, 

        image: 'http://a0.twimg.com/profile_images/59268975/jquery_avatar_bigger.png', 

        sticky: false, 

        time: '' 
       }); 
      }, 
      error: function(){ 
       alert("OMG ERROR"); 
      } 
     }); 
    }; 
    poll(); 

ответ

2

Я довольно уверен, что причина в том, что вы проходите опрос в полной функции, эффективно создавая не-заканчивающийся или каскадные рекурсии (не знаю, если это правильный термин из программирования 101 ...)

+0

Я только начал работать с опросом сегодня, но это не значит, что идея держать опрос идет. Итак, если добавляется другое уведомление, пользователю сообщается? –

+0

- это идея опроса, но в вашем подходе завершение является частью самого опроса, поэтому, если вы называете себя от себя, это рекурсия. Вы можете попробовать его с анонимной функцией $ .ajax ({ полная: функция() { опрос();} , .... }) – Jamgold

+0

Вы было правильно. Я отнял; комплект: опрос и добавлен опрос(); в области успеха, и, похоже, все в порядке. Спасибо вам за помощь. –

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