Highcharts中

chart: {                renderTo: 'container',                width: myWidth,                height:350,                spacingLeft:-65            },
登录后复制


yAxis: [{ // Primary yAxis            	tickPositions: [145.00, 150.00, 155.00, 160.00, 165.00],            	max: 163.50,            	labels: {                    formatter: function() {                   //我想在这里对this.value做判断, 设置chart里的width值                                    return this.value.toFixed(2);                            },                }],
登录后复制



想知道代码怎么写


回复讨论(解决方案)

去下个Highcharts手册看看文档开发 里面都有实例的

不可以,
你还是在外面做判断。
判断完后,再设参数。

在加载数据前先进行数据分析, 把你的myWidth计算好再进行chart的生成.
这也是这种静态绘制的规范思路: 即通过数据决定表现; 而不是在执行表现渲染的过程中再来改变其它的表现参数

在加载数据前先进行数据分析, 把你的myWidth计算好再进行chart的生成.
这也是这种静态绘制的规范思路: 即通过数据决定表现; 而不是在执行表现渲染的过程中再来改变其它的表现参数

之前就是这么做的,但是数据比较多,现在性能不是很好,加载的话需要七秒左右.

不可以,
你还是在外面做判断。
判断完后,再设参数。

数据检索我做了,但是这样比较慢

7秒是指chart的绘制时间吧?不可能进行数据处理也要7秒吧!

如果是绘制时间: 你这样动态的改变会更加降低性能, 只有想办法来进行分步加载之类的处理, 来保证浏览器不会因执行js代码时间过长而卡死

如果是数据处理时间: 如果你的算法逻辑没有问题的话, 只能说数据量确实太大太大了. 要优化只有分步加载数据了

7秒是指chart的绘制时间吧?不可能进行数据处理也要7秒吧!

如果是绘制时间: 你这样动态的改变会更加降低性能, 只有想办法来进行分步加载之类的处理, 来保证浏览器不会因执行js代码时间过长而卡死

如果是数据处理时间: 如果你的算法逻辑没有问题的话, 只能说数据量确实太大太大了. 要优化只有分步加载数据了

在IE9下的话还是很快的,IE8就很慢了。对数据check太多了,这种情况一般怎么解决

一般优化的算法思路: 减少遍历数量(尽量只做一次遍历), 不使用迭代/递归

对于js, 由于它是单线程, 所以为了避免js在一段逻辑内"卡住", 可以将数据分段加载

09-16 13:50