2014-02-12 5 views
1

У меня есть сайт с формой (в настоящее время это простой HTML, но мы переходим на JQuery). Поток, как это:Отправка данных JSON клиенту? D3.js рендеринг данных JSON

  • Примите во входы пользователя --- 5 целых чисел
  • сделать вызов веб-службы с помощью REST
  • Выполнить некоторые вычисления на стороне сервера ... и генерировать JSON объект

    ??? Теперь у меня есть объект JSON моего результата, но как мне получить его для клиента? Сохранять это? ??? Должен ли URL-адрес быть точным местоположением файла JSON? Это будет означать 100's ??? файлов JSON в DIR моего веб-сервера.

  • D3.js на стороне клиента ожидает присутствия данных (через AJAX?).

    var data; // a global 
    
    d3.json("path/to/file.json", function(error, json) { 
    if (error) return console.warn(error); 
        data = json; 
        visualizeit(); 
    }); 
    
  • После того, как данные присутствуют, визуализации для клиента, и снимите калькулятор с экрана.

У меня трудное время здесь, потому что я замечаю все запросы AJAX нужен URL .. но тогда это значит, что мне нужно, чтобы дать уникальный URL для каждого результирующего объекта JSON? Разве это не значит, что мне нужно сохранить этот объект?

Я бы просто хотел, чтобы d3.js отображали объект JSON, но неясно, какие у меня варианты для размещения.

ответ

2

How do I post parameter on d3.json?

Как правило, вы пройдете некоторые параметры с помощью объектов JavaScript или параметра запроса. В принципе, что-то вроде ...

данных = {}

data.var1 = 5;

данные.var2 = 10;

вар my_request = d3.xhr (URL)

my_request.post (JSON.stringify (данные), функция (ошибка, получен)) {

};

Или

d3.json (URL + "?" + "Var1 = 5 & var2 = 10", функция (ошибка, получен)) {

}

Очевидно, что эти параметры формы могут быть проанализированы на ser ver легко. После того, как значения разобраны на сервере, сервер может сгенерировать новый JSON с использованием параметров формы, которые были проанализированы.

Убедитесь, что, если вы используете сценарий с локальной страницы (или страницы, которая отсутствует на веб-сайте), у сервера есть возможность разрешить запросы на перекрестный поиск (или домен).

Если вы хотите сохранить данные на нескольких вызовах, вам, вероятно, придется встроить обратные вызовы или использовать глобальные переменные.

+0

Значит, это похоже на выполнение POST ... На страницу, которая вернет объект JSON? – Erik

+0

Да, или вы можете сделать GET. Однако вычисления не должны быть слишком дорогими. – jmpyle771

+0

Я вижу, что вы поместили мои входные данные как объект JSON ... Моя путаница окружала, как захватить ответ веб-служб JSON .. Кажется, мне просто нужно написать веб-сервис, который выводит JSON, а d3 будет счастлив – Erik