Spec-Zone.ru › D3.js 7

d3-request

Этот модуль устарел, начиная с D3 5.0; используйте d3-fetch вместо него.

Этот модуль предоставляет удобную альтернативу XMLHttpRequest. Например, для загрузки текстового файла:

d3.text("/path/to/file.txt", function(error, text) {
  if (error) throw error;
  console.log(text); // Hello, world!
});

Для загрузки и разбора файла CSV:

d3.csv("/path/to/file.csv", function(error, data) {
  if (error) throw error;
  console.log(data); // [{"Hello": "world"}, …]
});

Для отправки параметров запроса:

d3.request("/path/to/resource")
    .header("X-Requested-With", "XMLHttpRequest")
    .header("Content-Type", "application/x-www-form-urlencoded")
    .post("a=2&b=3", callback);

Этот модуль имеет встроенную поддержку разбора JSON, CSV и TSV; в браузерах, но не в Node, также поддерживаются HTML и XML. Вы можете обрабатывать дополнительные форматы, используя request или text напрямую.

Установка

Если вы используете NPM, npm install d3-request. В противном случае, скачайте последнюю версию. Вы также можете загрузить напрямую с d3js.org, как самостоятельную библиотеку, так и как часть D3 4.0. Поддерживаются AMD, CommonJS и обычные среды. В обычной среде экспортируется глобальная переменная d3:

<script src="https://d3js.org/d3-collection.v1.min.js"></script>
<script src="https://d3js.org/d3-dispatch.v1.min.js"></script>
<script src="https://d3js.org/d3-dsv.v1.min.js"></script>
<script src="https://d3js.org/d3-request.v1.min.js"></script>
<script>

d3.csv("/path/to/file.csv", callback);

</script>

Ссылка на API

d3.request(url[, callback]) Источник

Возвращает новый запрос для указанного url. Если callback не указан, возвращаемый запрос еще не отправлен и может быть дополнительно настроен. Если callback указан, он эквивалентен вызову request.get сразу после создания:

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

Если вы хотите указать заголовок запроса или тип MIME, вы не должны указывать callback в конструкторе. Используйте request.header или request.mimeType, а затем request.get. Обратитесь к d3.json, d3.csv, d3.tsv, d3.html и d3.xml для конструкторов с удобством для конкретного содержимого.

request.header(name[, value]) Источник

Если value указан, устанавливает заголовок запроса с указанным name на указанное значение и возвращает этот экземпляр запроса. Если value равно null, удаляет заголовок запроса с указанным name вместо этого. Если value не указан, возвращает текущее значение заголовка запроса с указанным name. Имена заголовков регистронезависимы.

Заголовки запроса могут быть изменены только до отправки запроса отправлен. Поэтому вы не можете передать callback в конструктор request, если хотите указать заголовок; используйте request.get или аналогичную функцию. Например:

d3.request(url)
    .header("Accept-Language", "en-US")
    .header("X-Requested-With", "XMLHttpRequest")
    .get(callback);

Примечание: эта библиотека по умолчанию не устанавливает заголовок X-Requested-With в XMLHttpRequest. Некоторые серверы требуют этот заголовок, чтобы смягчить нежелательные запросы, но наличие заголовка запускает предварительные проверки CORS; при необходимости установите этот заголовок перед отправкой запроса.

request.mimeType([type]) Источник

Если type указан, устанавливает тип MIME запроса на указанное значение и возвращает этот экземпляр запроса. Если type равно null, очищает текущий тип MIME (если таковой имеется). Если type не указан, возвращает текущий тип MIME, который по умолчанию равен null. Тип MIME используется для установки заголовка запроса «Accept» и для «Accept» request header и overrideMimeType, где это поддерживается.

Тип MIME запроса может быть изменён только до отправки запроса отправлен. Поэтому вы не можете передать callback в конструктор request, если хотите переопределить тип MIME; используйте request.get или аналогичную функцию. Например:

d3.request(url)
    .mimeType("text/csv")
    .get(callback);
request.user([value]) Источник

Если value указан, устанавливает имя пользователя для аутентификации на указанную строку и возвращает этот экземпляр запроса. Если value не указан, возвращает текущее имя пользователя, которое по умолчанию равно null.

request.password([value]) Источник

Если value указан, устанавливает пароль для аутентификации на указанную строку и возвращает этот экземпляр запроса. Если value не указан, возвращает текущий пароль, который по умолчанию равен null.

request.timeout([timeout]) Источник

Если timeout указан, устанавливает атрибут timeout запроса на указанное количество миллисекунд и возвращает этот экземпляр запроса. Если timeout не указан, возвращает текущий тайм-аут ответа, который по умолчанию равен 0.

request.responseType([type]) Источник

Если type указан, устанавливает атрибут response type запроса и возвращает этот экземпляр запроса. Типичные значения: ​ (пустая строка), arraybuffer, blob, document, и text. Если type не указан, возвращает текущий тип ответа, который по умолчанию равен ​.

request.response(value) Источник

Устанавливает функцию значения ответа на указанную функцию и возвращает этот экземпляр запроса. Функция значения ответа используется для сопоставления объекта XMLHttpRequest ответа с полезным значением данных. См. вспомогательные методы json и text для примеров.

request.get([data][, callback]) Источник

Эквивалентно request.send с методом GET:

request.send("GET", data, callback);
request.post([data][, callback]) Источник

Эквивалентно request.send с методом POST:

request.send("POST", data, callback);
request.send(method[, data][, callback]) Источник

Выполняет этот запрос с использованием указанного method (например, GET или POST), необязательно отправляя указанные data в теле запроса, и возвращает этот экземпляр запроса. Если указан callback, callback будет вызываться асинхронно при успешном или неудачном выполнении запроса. Callback вызывается с двумя аргументами: ошибка, если есть, и значение ответа. Значение ответа будет undefined, если произошла ошибка. Это эквивалентно:

request
    .on("error", function(error) { callback(error); })
    .on("load", function(xhr) { callback(null, xhr); })
    .send(method, data);

Если callback не указан, то слушатели «load» и «error» должны быть зарегистрированы с помощью request.on.

request.abort() Источник

Прерывает этот запрос, если он в настоящее время выполняется, и возвращает этот экземпляр запроса. См. XMLHttpRequest’s abort.

request.on(type[, listener]) Источник

Если listener указан, устанавливает обработчик событий listener для указанного type и возвращает этот экземпляр запроса. Если обработчик событий уже был зарегистрирован для того же типа, существующий обработчик удаляется перед добавлением нового. Если listener равен null, удаляется текущий обработчик событий для указанного type (если таковой имеется). Если listener не указан, возвращает текущий обработчик для указанного типа, если таковой имеется.

Тип должен быть одним из следующих:

  • beforesend - для установки пользовательских заголовков и подобного до отправки запроса отправлен.
  • progress - для отслеживания прогресса запроса.
  • load - когда запрос завершается успешно.
  • error - когда запрос завершается неудачно; это включает коды ответов 4xx и 5xx.

Для регистрации нескольких обработчиков для одного и того же type, тип может быть последован необязательным именем, таким как load.foo и load.bar. См. d3-dispatch для получения подробностей.

d3.csv(url[[, row], callback]) Источник

Возвращает новый запрос для файла CSV по указанному url с типом MIME по умолчанию text/csv. Если callback не указан, это эквивалентно:

d3.request(url)
    .mimeType("text/csv")
    .response(function(xhr) { return d3.csvParse(xhr.responseText, row); });

Если callback указан, отправляется запрос GET, что делает его эквивалентным:

d3.request(url)
    .mimeType("text/csv")
    .response(function(xhr) { return d3.csvParse(xhr.responseText, row); })
    .get(callback);

Можно указать необязательную функцию преобразования строки для сопоставления и фильтрации объектов строк до более специфичного представления; см. dsv.parse для получения подробностей. Например:

function row(d) {
  return {
    year: new Date(+d.Year, 0, 1), // convert "Year" column to Date
    make: d.Make,
    model: d.Model,
    length: +d.Length // convert "Length" column to number
  };
}

Возвращаемый запрос предоставляет дополнительный метод request.row в качестве альтернативы передаче функции преобразования строки в d3.csv, что позволяет настроить запрос перед его отправкой. Например, это:

d3.csv(url, row, callback);

Эквивалентно этому:

d3.csv(url)
    .row(row)
    .get(callback);
d3.html(url[, callback]) Источник

Возвращает новый запрос для файла HTML по указанному url с типом MIME по умолчанию text/html. Файл HTML возвращается как фрагмент документа document fragment. Если callback не указан, это эквивалентно:

d3.request(url)
    .mimeType("text/html")
    .response(function(xhr) { return document.createRange().createContextualFragment(xhr.responseText); });

Если callback указан, отправляется запрос GET, что эквивалентно:

d3.request(url)
    .mimeType("text/html")
    .response(function(xhr) { return document.createRange().createContextualFragment(xhr.responseText); })
    .get(callback);

Разбор HTML требует глобального документа и опирается на DOM Ranges, которые не поддерживаются JSDOM начиная с версии 8.3; таким образом, этот метод поддерживается в браузерах, но не в Node.

d3.json(url[, callback]) Источник

Возвращает новый запрос для получения файла JSON по указанному url с типом MIME по умолчанию application/json. Если callback не указан, это эквивалентно:

d3.request(url)
    .mimeType("application/json")
    .response(function(xhr) { return JSON.parse(xhr.responseText); });

Если callback указан, отправляется запрос GET, что эквивалентно:

d3.request(url)
    .mimeType("application/json")
    .response(function(xhr) { return JSON.parse(xhr.responseText); })
    .get(callback);
d3.text(url[, callback]) Источник

Возвращает новый запрос для получения текстового файла по указанному url с типом MIME по умолчанию text/plain. Если callback не указан, это эквивалентно:

d3.request(url)
    .mimeType("text/plain")
    .response(function(xhr) { return xhr.responseText; });

Если callback указан, отправляется запрос GET, что эквивалентно:

d3.request(url)
    .mimeType("text/plain")
    .response(function(xhr) { return xhr.responseText; })
    .get(callback);
d3.tsv(url[[, row], callback]) Источник

Возвращает новый запрос для файла TSV по указанному url с типом MIME по умолчанию text/tab-separated-values. Если callback не указан, это эквивалентно:

d3.request(url)
    .mimeType("text/tab-separated-values")
    .response(function(xhr) { return d3.tsvParse(xhr.responseText, row); });

Если callback указан, отправляется запрос GET, что эквивалентно:

d3.request(url)
    .mimeType("text/tab-separated-values")
    .response(function(xhr) { return d3.tsvParse(xhr.responseText, row); })
    .get(callback);

Можно указать необязательную функцию преобразования строки для сопоставления и фильтрации объектов строк до более специфичного представления; см. dsv.parse для получения подробностей. Например:

function row(d) {
  return {
    year: new Date(+d.Year, 0, 1), // convert "Year" column to Date
    make: d.Make,
    model: d.Model,
    length: +d.Length // convert "Length" column to number
  };
}

Возвращаемый запрос предоставляет дополнительный метод request.row в качестве альтернативы передаче функции преобразования строки в d3.tsv, что позволяет настроить запрос перед его отправкой. Например, это:

d3.tsv(url, row, callback);

Эквивалентно этому:

d3.tsv(url)
    .row(row)
    .get(callback);
d3.xml(url[, callback]) Источник

Возвращает новый запрос для получения файла XML по указанному url с типом MIME по умолчанию application/xml. Если callback не указан, это эквивалентно:

d3.request(url)
    .mimeType("application/xml")
    .response(function(xhr) { return xhr.responseXML; });

Если callback указан, отправляется запрос GET, что эквивалентно:

d3.request(url)
    .mimeType("application/xml")
    .response(function(xhr) { return xhr.responseXML; })
    .get(callback);

Разбор XML зависит от xhr.responseXML, который не поддерживается node-XMLHttpRequest начиная с версии 1.8; таким образом, этот метод поддерживается в браузерах, но не в Node.

© 2010–2023 Michael Bostock
Licensed under the BSD License.
https://github.com/d3/d3-request

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API