Встречались ли вы c отрисовкой JSON средствами JS?

JavaScript rails RoR

ruby 1.9.3p194, Rails 3.2.3, MySQL

Происходит выборка из таблицы БД, результат запроса возвращается в виде JSON (~18 000 записей). Далее этот JSON используется в качестве данных для построения графика..

Processing by StaticPagesController#index as HTML
Frequencies Load (43.8ms)

Rendered static_pages/index.html.erb within layouts/application (1200.7ms)
Completed 200 OK in 5302ms (Views: 1586.1ms | ActiveRecord: 47.4ms)

Примечание:
Ok, спасибо посмотрю. Как я понимаю просто json принимается асинхронно и происходит отрисовка?

В общем вот мои методы... Только вот еще возник вопрос по поводу as_json.. (если сделать render :text=>some_variable.to_json(), на странице все отображается нормально. Но вот как только мы передадим в переменную JS смотрим инспектор и там в переменной в json вместо [{"freq":0.0395956}] присвено "freq"=>0.0395956).. как правильней передать JSON, что бы так не получалось, может быть литературу в данной теме посоветуете..
Контроллер:
def index
@frequencies = Frequencies.find(3).as_json() #3 записи, это просто для проверки должно быть :all
end

Представление:
<div id="chartdiv" style="width: 100%; height: 400px;"></div>

<script type="text/javascript">
var chart;

var chartData = <%= @frequencies %>;


AmCharts.ready(function () {
// SERIAL CHART
chart = new AmCharts.AmSerialChart();
chart.dataProvider = chartData;
chart.categoryField = "freq";
chart.startDuration = 1.0;

// AXES
// category
var categoryAxis = chart.categoryAxis;
categoryAxis.labelRotation = 90;
categoryAxis.gridPosition = "start";

// GRAPH
var graph = new AmCharts.AmGraph();
graph.valueField = "numbers";
//graph.balloonText = "[[freqs]]: [[value]]";
graph.type = "smoothedLine";
graph.bullet = "round";

graph.lineAlpha = 1;
graph.fillAlphas = 0;
chart.addGraph(graph);

chart.write("chartdiv");
});
</script>
Ответы:
Давайте последовательно.
Во первых существует 100500 разных методов обработки JSON, это, можно сказать отраcлевой стандарт.
Во вторых, данные приведенные вами отражают рендер HTML, а не JSON.
В тертьих, чего вы хотите добиться?
json приходящий от сервера надо парсить средствами javascript
на jQuery:
var chartData = JSON.parse(<%= @frequencies %>); должно сработать
еще помоему вариант
var chartData = <%= escape_javascript(@frequencies) %>;
Еще момент, если данные обновляются реже чем их запрашивают, на таком долгом запросе вывод нужно кешировать. А сбрасывать кеш при after_create в модели.


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.