jQuery getJSON с тайм-аутом

При вызове веб-службы Yahoo (http://boss.yahooapis.com/ysearch) для возврата набора данных можно ли установить тайм-аут и выйти из подпрограммы по его истечении?

jQuery.getJSON("http://boss.yahooapis.com/ysearch/...etc",
        function (data) {
              //result set here
            });

person Scott B    schedule 09.11.2010    source источник


Ответы (3)


Вы можете использовать опцию тайм-аута

http://api.jquery.com/jQuery.ajax/

$.ajax({
  url: url,
  dataType: 'json',
  data: data,
  success: callback,
  timeout: 3000 //3 second timeout
});
person Galen    schedule 09.11.2010
comment
Спасибо! Для чего нужен обратный вызов, когда срабатывает тайм-аут? - person Scott B; 10.11.2010
comment
нет, это когда возвращается вызов ajax... будет вызываться эта функция обратного вызова - person Galen; 10.11.2010
comment
очень хорошо, но как вы можете поставить обработчик событий на тайм-аут? - person ; 27.05.2011

Вариант тайм-аута, предложенный Галеном, является наилучшим выходом. Если вам нужен альтернативный метод, вы можете записать время, когда был инициирован запрос, и в обратном вызове сравнить его с текущим временем. Игнорируйте результат, если прошло определенное количество времени. Конечно, это не отменит запрос.

person Chris Laplante    schedule 09.11.2010

person    schedule
comment
Мне нравится креативность этого ответа. На самом деле я не знал, что могу прервать вызов getJSON таким образом, так что спасибо. Это сработало для нашего приложения. - person uadrive; 21.05.2014