请选择 进入手机版 | 继续访问电脑版

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 新增登录提醒插件 - 用至我的站点 地图任务一定要做 - 给官方提建议

论坛活动及任务 地图和邮件任务 请多用悬赏提问 热夏来袭,选一款蓝色理想的个性T恤吧!

MIUI手机主题设计大赛,奔驰大奖等你拿! 想加薪?!蓝色理想招聘提供你更多机会 悬赏答疑,赚取积分兑奖品!

查看: 499|回复: 9

javascript 内存增加 [复制链接]

9876541 楼主
帖子
20
体力
97
威望
0
居住地
广东省 深圳市
发表于 2010-7-14 15:26:20 |显示全部楼层
页面上有两处以上的地方采用了定时器进行实时刷新,发现在ie7下内存会慢慢的增长。经查发现每次执行一次ajax的请求,内存就会不定值的增长。返回值也只是jsp页面。大家能说说这是什么原因导致的吗?
$.ajax({
         url:"getXXX.action",
         cache:false,
         success:function(message){
                 $("#aaa").empty().html(message);
         },error:function(data){
                 alert("error....");
         }
});
9876541 楼主
帖子
20
体力
97
威望
0
居住地
广东省 深圳市
发表于 2010-7-14 17:22:43 |显示全部楼层

js setInterval局部刷新,内存使用增加

页面中有多处使用setInterval进行局部刷新,导致页面在ie7下的内存使用不断增长,cpu使用在发送请求时会有所增长,请求完成后会回到正常情况,但是内存使用就只增不减,这属于正常情况吗?还是存在没有释放资源的问题?
帖子
531
体力
1683
威望
0
发表于 2010-7-14 17:31:30 |显示全部楼层

setInterval 使用方式不当造成的吧?
帖子
419
体力
1142
威望
0
居住地
浙江省 杭州市
发表于 2010-7-14 17:31:59 |显示全部楼层
你在做 setInterva的时候 需要加上释放的操作
912ni.com 真爱墙
9876541 楼主
帖子
20
体力
97
威望
0
居住地
广东省 深圳市
发表于 2010-7-14 17:34:33 |显示全部楼层
原帖由 chinahappy 于 2010-7-14 17:31 发表
你在做 setInterva的时候 需要加上释放的操作

你是指clearInterval?如果是的话,每次执行之前都会先清除。
帖子
183
体力
437
威望
0
居住地
广东省 深圳市
发表于 2010-7-14 17:35:39 |显示全部楼层
clearInterval方法?
9876541 楼主
帖子
20
体力
97
威望
0
居住地
广东省 深圳市
发表于 2010-7-14 17:36:36 |显示全部楼层
原帖由 ReachLau 于 2010-7-14 17:35 发表
clearInterval方法?

什么意思?
帖子
419
体力
1142
威望
0
居住地
浙江省 杭州市
发表于 2010-7-14 18:15:06 |显示全部楼层
这里你需要设置一个 ajax时效性,还有你请检查下jsp页面是否有问题 比如死循环之类的
912ni.com 真爱墙
帖子
531
体力
1683
威望
0
发表于 2010-7-14 20:24:26 |显示全部楼层
想解决上代码吧。
你上医院说:“医生,我老婆一站起来就头晕,你说是啥毛病?”
医生能咋说?
可能的原因太多了,先把人抬过来看看的。
9876541 楼主
帖子
20
体力
97
威望
0
居住地
广东省 深圳市
发表于 2010-7-15 11:57:54 |显示全部楼层
  1. var time1= setInterval('AA()',10*1000);
  2. var time2;
  3. var index = 0;
  4. function AA(){
  5.         if(a != b || c != d){
  6.                 clearInterval(time1);
  7.                 time2=setInterval("bb()",1000);
  8.         }
  9. }
  10. function bb(){
  11.         index++;
  12.         if(index <= 4){
  13.                 //...
  14.         }else{
  15.                 clearInterval(time2);
  16.                 time1 = setInterval('AA()',10*1000);
  17.         }
  18. }
复制代码

这样重复调用,有问题吗?
您需要登录后才可以回帖 登录 | 注册


Archiver|手机版|blueidea.com ( 京ICP备05002321号 )    

GMT+8, 2012-6-2 08:36 , Processed in 0.122579 second(s), 8 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部