caillc 2015-03-06 06:00 采纳率: 0%
浏览 1723

IE6中使用setInterval定期刷新Fusioncharts导致IE内存持续升高不能释放

贴出代码:
var myChart1 = null;
//分税种
var fsz = function() {
result = ajax_comm("com.digitalchina.jkpt.web.WelcomeWebService","queryFsz",{date:yearMonth});
//alert(result.xml)
myChart1 = new FusionCharts("/adp/work/jkpt/comm/FusionCharts/swf/Pie3D.swf?ChartNoDataText=没有查询到数据", "fsz_t1_img", "338", "198");
myChart1.setDataXML(result.xml);
myChart1.render("fsz_t1");
}

var refreshPage = function() {
myChart1.dispose();
myChart1 = null;
//清理内存
CollectGarbage();
fsz();

$(function() {
refreshPage();
setInterval("refreshPage()", 30000);
});

}
  • 写回答

1条回答 默认 最新

  • danielinbiti 2015-03-06 07:57
    关注

    内存增长原因是哪个变量引起的没法替你分析,但你这释放myChart1的内存方式是有问题的。

     myChart1 = null;
    //清理内存
    CollectGarbage();
    

    这段代码清理内存是无效的。myChart1=null只能说myChart1失效,但不释放内存,在refreshPage没执行完之前myChart1还在refreshPage的上下文中,这时候CollectGarbage是没用的,需要执行完才能清理,比如

     setTimeout(CollectGarbage, 1);
    

    CollectGarbage只会在IE中生效

    评论

报告相同问题?

悬赏问题

  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)