すべてのX msをポーリングするサーバーにajaxリクエストを設定することをお勧めします。このようなjqueryを使用することをおすすめします。レール側で
var ajax_path = #{action_controller_path}
function pollData() {
$.ajax({
type: 'get',
url: ajax_path,
success: function(data) {
// update chart
var series = chart.series[0],
shift = series.data.length > 20; // shift if the series is longer than 20
chart.series[0].addPoint(data, true, shift);
setTimeout(pollData, 60000) // Poll data every 60s
}
});
}
あなたは、JSONを含めるようにあなたのresponds_toを設定することを忘れないでください、このAJAXリクエストを養うためにコントローラー#アクションを作成する必要があります。この線に沿って何か「そのまま」、このコードをご利用ください。
respond_to :json, only: [:polling_action]
def polling_action
@data_point = Model.get_data
respond_with @data_point
end
私は実際にグラフを更新する方法の詳細は、記事@ニキータ-beloglazovが参照に記載されていると思う:http://www.highcharts.com/documentation/how-to-useとここhttp://www.highcharts.com/ref/#series-objectのためaddPoint(Object options、[Boolean redraw]、[Boolean shift]、[Mixed animation])apiリファレンス。これはajaxポーリングメソッドでデータポイントをロードした後に呼び出すべきものです。
注:ポーリングデータは、データの更新間隔を知らないと非常に効率的な処理ではありません。このデータを60秒ごとに更新する必要があるだけであることを考慮すれば、これはおそらく問題ではありませんが、これを偶然に出す可能性がある他の人たちのために置きます。