Как указать время ожидания в d3 xhr отправить запрос

1

Я хочу установить значение тайм-аута, чтобы, если сервер не отвечает в течение определенного периода времени, пользовательский интерфейс должен двигаться вперед и не ждать ответа. Я использовал синтаксис ниже, но он не ограничивает пользовательский интерфейс для прослушивания в течение указанного времени.

      d3.xhr(my_url)
        .header('Content-Type', 'text/xml')
        .header('timeout', 2000)
        .send(this.my_method, my_xmlData, function(error, data) {
        }

Я читал здесь, что d3 xhr теперь поддерживает функцию тайм-аута. Может ли кто-нибудь рассказать мне, как правильно использовать это?

  • 0
    timeout вернет экземпляр запроса. Кроме того, не стоит редактировать ваше сообщение, чтобы задать другой вопрос. Как видите, я ответил на ваш вопрос. Но теперь, так как вы изменили его на другой, люди, которые посмотрят на мой ответ, найдут его неуместным ...
  • 0
    @GerardoFurtado Хорошо, Mate поднимет новый.
Показать ещё 2 комментария
Теги:
d3.js
xmlhttprequest
http
timeout

1 ответ

2
Лучший ответ

Просто передайте время (в миллисекундах) timeout (в версии 4.x):

.timeout(time)

Вот пример. Я загружу файл JSON без timeout:

var url = "https://mysafeinfo.com/api/data?list=englishmonarchs&format=json";

d3.json(url)
  .get(callback);

function callback(data) {
  console.log(data)
}
<script src="https://d3js.org/d3.v4.min.js"></script>

Теперь тот же код, используя 1 миллисекунду в тайм-ауте (очень мало времени):

var url = "https://mysafeinfo.com/api/data?list=englishmonarchs&format=json";

d3.json(url)
  .timeout(1)
  .get(callback);

function callback(data) {
  console.log(data)
}
<script src="https://d3js.org/d3.v4.min.js"></script>

Как вы видите, 1 миллисекунда слишком мало времени, чтобы получить файл, и обратный вызов будет возвращать null, как и ожидалось.

  • 0
    Вау! Это сработало. Но как нам указать функцию для запуска в случае тайм-аута?
  • 0
    Принял ответ. Но хотите выполнить обратный вызов по таймауту, поскольку пользовательский интерфейс все еще зависает в ожидании значений. stackoverflow.com/q/46924863/5346095
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню