Вышла новая версия D3.js, библиотеки JavaScript для управления документами на основе данных. В новом выпуске добавлена поддержка обещаний вместо асинхронных обратных вызовов для загрузки данных.
D3 предоставляет способ работы с данными с использованием HTML, SVG и CSS. Использование стандартных веб-технологий позволяет избежать необходимости в проприетарной структуре. Библиотека предлагает компоненты визуализации данных и управляемый данными подход к управлению DOM. Элементы отображения данных можно использовать для создания графиков, интерактивной графики, карт на основе данных и информационных панелей.
Основное изменение в новой версии D3 заключается в том, что теперь для загрузки данных используются обещания, а не асинхронные обратные вызовы. Обещания упрощают структуру асинхронного кода, особенно в современных браузерах, поддерживающих async и await. Переход на использование обещаний означает, что D3 теперь использует Fetch API вместо XMLHttpRequest. Fetch поддерживает ряд новых функций, таких как потоковая передача ответов. Это дает вам доступ к разделам данных по мере их доступности, а не заставляет приложение ждать, пока не будет сгенерирован весь набор данных.
Еще одно изменение в новой версии заключается в том, что D3 больше не поддерживает двадцатигранную цветовую схему. Это могло вызвать проблемы, потому что их сгруппированный дизайн может ложно подразумевать взаимосвязи в данных. Когда точки данных имеют общий оттенок, пользователь может интерпретировать это как группу, а изменения яркости могут подразумевать порядок. D3 изменился на использование d3-scale-chromatic, в котором реализованы схемы ColorBrewer, которые разработчики описывают как «превосходные». Схемы, которые это обеспечивает, включают категориальные, расходящиеся, последовательные схемы одного оттенка и последовательные схемы нескольких оттенков. Эти схемы доступны как в дискретном, так и в непрерывном вариантах.
Последнее главное изменение в новой версии — добавление реализаций маршевых квадратов и оценки плотности через d3-contour. Реализация включает методы для вставки клонов выбранных узлов и для создания отдельных элементов. Географические проекции теперь поддерживают projection.angle, в котором появилось несколько новых многогранных проекций.