Я работаю над проектом, который требует от меня визуализации довольно сложного типа данных (см. этот старый вопрос). Короче говоря, у меня есть большой кусок данных, который я могу экспортировать в JSON, CSV или какой-либо другой произвольный плоский формат, хотя я предпочитаю избегать XML, если это возможно (см. связанный вопрос выше, в -подробное объяснение лежащего в основе данные ).
Я начал работать над визуализацией с использованием D3, макет, который я написал, пока работает нормально, когда я тестирую его с некоторыми очень простыми данными, которые я жестко закодировал в Javascript в виде массива. Учебники, которые я читал по привязке данных в D3, были немного запутанными в том смысле, что некоторые используют JSON, а некоторые используют формат TXT/CSV, а некоторые другие используют жестко запрограммированные массивы/матрицы.
В случае с JSON я смотрел руководство, в котором рассказчик настоятельно советует разместить файл JSON на веб-сервере и получить его с помощью HTTP-запроса вместо чтения локального файла. Я понимаю, что это связано с ограничениями междоменных запросов, которые, как мне кажется, мне нужно как-то -обойти. На данный момент я не уверен, как действовать, поскольку:
Визуализация на основе D3 -будет представлена в виде серии HTML-отчетов, созданных в результате написанного мной инструмента анализа. Анализ выполняется на компьютере пользователя, отчеты в формате HTML также создаются локально на стороне клиента -.
Предполагаемые пользователи определенно не разбираются в технологиях -, поэтому нельзя указывать им запускать веб-сервер на своем компьютере, чтобы иметь возможность обслуживать JSON или любой другой тип или ресурс через локальный хост
. Для справки, я попытался запустить модуль python SimpleHTTPServer, чтобы попробовать его, и снова все работает нормально.Затем я попытался жестко -закодировать данные в сгенерированных HTML-отчетах, а затем вызвать объект JSON из моего скрипта, использующего D3,
//d3.json("mydata.json", function(json){
d3.json(myjson, function(json){
nodeData = json.elements;
....
}
что не удается, поскольку в этом случае я в конечном итоге отправляю объект JSON, в то время как D3.js ожидает URL-адрес.
Что я могу сделать, чтобы избежать/решить эту проблему?