getJSON: как попытаться получить какой-либо URL-адрес до успеха каждые 0,5 секунды? - PullRequest
0 голосов
/ 03 февраля 2012

Так что в настоящее время я использую простую попытку один раз:

$.getJSON("server.json", function(data) {
        servicesList.render(data);
});

Интересно, как пытаться до успеха каждые 0,5 секунды?

Ответы [ 2 ]

2 голосов
/ 03 февраля 2012
function getFromServer(){
  $.getJSON("server.json", function(data) {
          // Verify your data, if it's not you want run error function 
          if(!data){ onerror(); return; }
          servicesList.render(data);
  }).error(function() { onerror(); });
}

// if error ,run it again.
function onerror(){
    setTimeout(function(){getFromServer();},500);
}

Справку API $ .getJSON можно найти по этой ссылке: http://api.jquery.com/jQuery.getJSON/

2 голосов
/ 03 февраля 2012

Попробуйте эту логику:

function update_it() {
  $.ajax({
    url: 'server.json',
    dataType: 'json',
    success: function(data) {
      servicesList.render(data);
    },
    error: function() {
      setTimeout('update_it', 500);
    }
  });
}

Если произойдет сбой, он ждет 500 мс, а затем вызывает функцию.

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