Как вы вызываете функцию AJAX из той же функции? - PullRequest
1 голос
/ 09 июля 2011

Я хочу создать опрашивающую ajax-функцию, которая снова и снова вызывает одну и ту же функцию, если выполняется определенное условие.Как бы я это сделал?Я использую JQuery.

Ответы [ 3 ]

2 голосов
/ 09 июля 2011

Почему бы не использовать функцию обратного вызова ajax в jQuery?

function myFunc(condition) {

    $.ajax({
        type:'GET',
        url:ajaxUrl,
        data:dataObject,
        success:function(response) {
            if (!condition) {
                myFunc(newCondition);
            }
        }
    }); 
}
myFunc();

Это будет вызывать одну и ту же функцию снова и снова, пока условие не станет истинным.

Справочная страница jQuery ajax: http://api.jquery.com/jQuery.ajax/

1 голос
/ 09 июля 2011

Вы можете сделать:

(function poll() {   
    $.ajax({
        ...
        success:function(response) {
            if (!condition_is_met) {
                poll();
            }
        }
    });
})(); //This calls the poll function inmediatly

Если вы хотите, чтобы вас казнили точно по истечении определенного времени, вы можете сделать:

setInterval(function poll() {   
  if(condition_is_met){
    $.ajax({
        ...
        success:function(response) {
            //your code here
        }
    });
  }
}, 5000); //Execute every 5 seconds

Надеюсь, это поможет. Приветствия

0 голосов
/ 09 июля 2011

Вы можете написать функцию javascript для вызова ajax и установить для нее интервал.Использование window.setInterval .

...