Javascript HighStock中Set极值和Afterextremes之间的差异
我是Highchart的新手,我有一个关于Javascript HighStock中Set极值和Afterextremes之间的差异,javascript,charts,highcharts,Javascript,Charts,Highcharts,我是Highchart的新手,我有一个关于setExtremes和afterextremes的问题,我不确定我是否理解它们之间的区别 下面是一个senario: 在setextremscallback函数中有一个从服务器检索json数据的函数。我将使用setextrems(比如2015-01-01到2015-05-01)预先设置图表范围,这样每次设置图表范围后,都会调用此函数从服务器获取新数据,但从服务器获取的数据可能具有不同的日期范围(比如2015-03-01到2015-05-04)。我想根据
setExtremes
和afterextremes
的问题,我不确定我是否理解它们之间的区别
下面是一个senario:
在setextrems
callback函数中有一个从服务器检索json数据的函数。我将使用setextrems
(比如2015-01-01到2015-05-01)预先设置图表范围,这样每次设置图表范围后,都会调用此函数从服务器获取新数据,但从服务器获取的数据可能具有不同的日期范围(比如2015-03-01到2015-05-04)。我想根据数据中的新范围调整图表范围。但是如果我在setextrems
回调函数中再次使用setextrems
,将出现无限循环
说
此事件在计算最终最小值和最大值后激发
所以我想这可以解决我的问题,但我不确定具体是如何解决的?区别如API参考中所述:
setExtremes
可以用不可接受的范围调用-在afterSetExtremes
范围被纠正后
在将值发送到原始setextrems
函数之前,您可以扩展Highcharts以更改最小值和最大值。Highcharts的延迟加载演示使用数据的动态加载,所以让我们向该JSFIDLE添加包装器
例如:
在这种情况下,范围开始(newMin)将更改为原始范围的一半。您可以在包装器中加载数据,检查其极端值,将更改后的值传递给原始方法
(function (H) {
H.wrap(H.Axis.prototype, 'setExtremes', function (proceed) {
var newMin = arguments[1],
newMax = arguments[2];
arguments[1] = (newMin+newMax)/2;
// Run original proceed method
proceed.apply(this, [].slice.call(arguments, 1));
});
}(Highcharts));