问题描述
引用
解决方案
哦哦。。。原来是HighCharts官方声称是有解决内存泄漏问题,但关键是。。。它指的泄漏是关闭浏览器仍不释放的泄漏,而非运行中释放基本上,想要解决难度很大,几乎底层代码都要过一遍,加上清理事件、解除Dom引用的逻辑。好像excanvas也需要一同改进HighCharts代码不便放出(就算放出也没用,版本低,改动大),但还是能做到将近0增长的。P.S. 推荐使用sIEve查看IE下Dom节点释放情况,JS本身的GC是很完善的,但与Dom循环引用就无能为力了。所以查看Dom节点的释放情况就知道是哪里有泄漏了。
解决方案二:
一帮人在这里解决问题,都不看楼主的代码,new Highcharts.Chart(waveLineImage); 你每次都会创建对象,浏览器能不崩溃吗?不要把页面初始化和实时请求混到一起,声明全局highchart对象,页面初始化的时候new一个highcharts对象,后面的实时请求只需要对series set数据就可以,然后调用redraw函数,或者先destroy highchart 然后在new。PS:pushlet+highcharts 效果还是挺理想的
解决方案三:
回个帖子,存个档,以后或许会用到
解决方案四:
频繁的jquery.ajax也会出现问题 。。对象销毁不干净 。
解决方案五:
奥义之舞 写道sunofsummer 写道我以前和你遇到过同样的问题,amcharts可以解决。性能方面可以解决么,内存长的快不,和AJAX交互怎么样,amcharts是基于flash实现的 如果网页游戏不存在内存问题的话 它也不会有的。
解决方案六:
用过Flex as3脚本写过一个监控的,内存占用是用仪表盘形式做的。也试过用pushlet+highchart写过(不是很理想,抛弃)
解决方案七:
HighCharts所renderer出来的每个Element都是可以destroy的,每个element都有destroy方法。HighCharts封装了VML和SVG,基本上能够跨浏览器。
解决方案八:
我以前和你遇到过同样的问题,amcharts可以解决。
解决方案九:
http://www.open-lib.com/Type/164-1.jsp这里面或许有你要找的。大家都共享一下自己项目用的图标组件吧。
解决方案十:
奥义之舞 写道yintingbird 写道我建议你用FusionCharts,你可以在网上搜一下,他的图表显示就很好,我用的就是这个,很简单的,你可以再往上找一个破解版的,但是破解版的柯南找的时候有点不好找。这个项目 已经基本完成了,这时候在动这个技术不太可可能,有可能到最后的时候 换成 SVG + VML了,觉得这个 可以 控制,但是 AJAX 刷新时,内存也是嗖嗖的网上长啊,一秒10几KB 这还只是 小图形。不过应该比当年用DIV时候强吧、、 HighCharts 商业用的话要收费吧。你们买了授权还是做的是国内项目?
解决方案十一:
JavaEye/ItEye 1号群 现招人 QQ 群号:39211996女程序员群7736086发完帖子我的号就没了,哎!
解决方案十二:
我建议你用FusionCharts,你可以在网上搜一下,他的图表显示就很好,我用的就是这个,很简单的,你可以再往上找一个破解版的,但是破解版的柯南找的时候有点不好找。
解决方案十三:
highChart我也在用,倒是没深究内存增长的问题。它也是vml+svg。内存不释放跟js代码和浏览器自身实现方式都有关系,有些情况你是无法有效释放内存的:比如在ie中,希望刷新释放内存是无法实现的,你可以到taobao、google地图等网站验证下,它默认将所有的页面元素都缓存起来,因此即使js完全没有问题它所占的内存也会越来越大。但chrome就好得多,每次刷新都显著地释放一些内存。至于highChart你可以到官网上反映下,看是否是内存泄露导致的。
解决方案十四:
想让大家说什么呢,图太少,不给力。
解决方案十五:
这个图表真的很蛋痛!