Javascript无响应脚本错误

时间:2013-06-12 16:47:26

标签: javascript api highcharts

我正在尝试通过API从我的图表中加载数据。所有数据都正确地进入图表,但图表没有加载,我得到了无响应的脚本错误。我正在使用Highcharts。有什么建议?谢谢。我的代码如下。

模型

public function ajax_get_chart() {

    $quotes = $this->rest->get('api/1/BTCUSD/trades/fetch');
    $series_data = array();
    $results = $quotes->return;
    $i = 0;

    foreach ($results as $quote)
    {
        $series_tmp = array(
            'date'      =>  $quote->date,
            'price'     =>  $quote->price
        );
        $series_data[]= $series_tmp;
        $i= $i+1;
    }
    die (json_encode($series_data));
    return TRUE;
} 

的Javascript

$(document).ready(function() {
    var chart;
    $.ajax({
        url: "/chart/ajax_get_chart", // the URL of the controller action method
        dataType: "json",
        success: function(result) 
        {
            chart = new Highcharts.Chart({
                chart: {
                    renderTo: 'container',
                    defaultSeriesType: 'bar'
                },
                title: {
                    text: 'Stacked bar chart'
                },
                xAxis: {
                    title: {
                        text: 'Price'
                    }
                },
                yAxis: {
                    min: 0,
                    title: {
                        text: 'Date'
                    }
                },
                legend: {
                    backgroundColor: '#FFFFFF',
                    reversed: true
                },
                tooltip: {
                    formatter: function() {
                        return ''+
                            this.series.name +': '+ this.y +'';
                    }
                },
                plotOptions: {},
                series: result
            });
        }
    });
});

2 个答案:

答案 0 :(得分:0)

听起来问题是存在太多数据。

您可以尝试使用更快的浏览器(Chrome通常可以快速运行),限制数据或尝试其他图表库。

限制数据可能是最有可能工作的数据。如果您需要显示所有数据,最好的方法是仅加载部分数据,然后如果用户滚动图表,则加载缺失的数据。

同时提供更多数据的另一种方法是计算服务器上数据的平均值。例如,如果股票代码数据来自每秒,您可以预先计算服务器上的每小时甚至每日平均值。这通常允许您显示相对准确的图表而不会导致性能问题,并且如果您缩放图表,许多库还支持动态加载更准确的数据。

答案 1 :(得分:0)

Highcharts无法处理如此庞大的数据,但使用Highstock与dataGrouping或延迟加载你应该能够处理很多点,请参阅demo

this article也应该有所帮助。