До этого данные, по которым нужно рисовать диаграмму, хранились в исходом коде в виде джаваскрипт-объектов. Теперь приложение может использовать данные извне в виде специального файла в формате .json
, описывающего диаграмму.
Такой файл состоит из объекта с двумя значениями. В одном хранится заголовок графика, во втором — список из событий. Каждое событие, в свою очедерь, тоже объект с тремя уже знакомыми значениями. Выглядит файл примерно так:
{
"chartName": "Ученые",
"events": [
{
"name": "Галилей",
"start": "1564-02-15",
"end": "1642-01-08"
},
{
"name": "Ньютон",
"start": "1642-12-25",
"end": "1727-03-20"
}
]
}
Приложение преобразует информацию по схеме:
Файл с информацией → Представление данных в виде жс-объектов → Страница с отрендеренным графиком в ДОМ
Вопрос с генерацией графика в виде ДОМ-объектов на основе данных в жс уже был решен. Чтобы получить данные из файла пришлось разобраться, во-первых, как загрузить файл; во-вторых, как этот файл распарсить. Для первого в браузере есть объект FileReader, для второго — функция JSON.parse
Еще поправил механизм рисования подписей с датами. Чтобы они не наплывали друг на друга, алгоритм смотрит, сколько подписей получится вместить, и соответственно выбирает шаг сетки от одного дня до столетия.