jQuery / Javascript - запускать запрос AJAX через X секунд - PullRequest
0 голосов
/ 01 сентября 2010

поэтому у меня есть этот код:

 $('input.myinput').each(function(){
    var id = $(this).val();
    var myajax = function(){
      $.ajax({
        url: ajax_url,
        type: "GET",
        data: ({
          code: id
        }),
        beforeSend: function() {  },
        error: function(request){ },
        success: function(data) { alert(data); }
      });
      setTimeout('myajax()', 10000);
    }
    myajax();
 });

Я хотел, чтобы вышеуказанный запрос ajax () выполнялся через 10 секунд после загрузки страницы, поэтому я использовал setTimeout, но он не работает :( Ajax-штука запускается сразу после загрузки страницы, а не через 10 секунд после ...

что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 01 сентября 2010
$('input.myinput').each(function(){

    var id = $(this).val();

    var myajax = function() {
      $.ajax({
        url: ajax_url,
        type: "GET",
        data: ({
          code: id
        }),
        beforeSend: function() {  },
        error: function(request){ },
        success: function(data) { alert(data); }
      });

      //if you need to run again every 10 seconds
      //setTimeout(myajax, 10000);

    };

    setTimeout(myajax, 10000);
 });
1 голос
/ 01 сентября 2010

Я бы сделал несколько вещей по-другому ..

function myajax(id) {
  $.ajax({
    url: ajax_url,
    type: "GET",
    data: ({
      code: id
    }),
    error: function(request){ },
    success: function(data) { alert(data); }
  });
  setTimeout('myajax(id)', 10000);  // you really want it to run AGAIN in another 10 seconds?
}

...

$(document).ready(function() {
   $('input.myinput').each(function(){
      var id = $(this).val();
      setTimeout('myajax(' + id + ')',10000);
   });
});

Нет смысла переопределять myajax как новую функцию для каждого ввода, когда вы можете объявить ее один раз и передавать новую переменную ID каждый вызов.

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