文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>JQuery实现局部刷新时内存溢出的一种解决方法(菜鸟的第一笔,多多包涵)

JQuery实现局部刷新时内存溢出的一种解决方法(菜鸟的第一笔,多多包涵)

时间:2010-09-05  来源:菜鸟老了

案例描述:

      在用JQuery实现对客户端请求的不间断监听,并用post方法实现局部刷新的时候,发现客户端浏览器在经过一个多小时后会因为内存溢出而崩溃。追踪后发现JQuery在实现局部刷新的过程中,由于内部机制会导致内存的增加。特别是在数据到达客户端并处理完后,内存使用增加明显(具体原因不明,应该是JQuery自身机制的问题。有明白的可以砸几块砖头让我也明白明白,谢谢!)。由于在脚本中嵌套调用脚本本身,客户端内存持续上升,直至客户端内存溢出。

      本以为是由于JQuery的数据处理机制才导致的客户端内存溢出,所以就采用了XMLhttpRequest来实现局部刷新,但是发现仍然会导致内存溢出,只是内存溢出的时间比用JQuery的慢(又是个不懂的地方)。

解决过程:

      在束手无策的情况下,师傅告诉了我window.clearTimeout(id)这个函数。把它加到代码里面后,结果发现:如果采用的是XMLhttpRequest实现局部刷新,内存溢出的情况得到了解决。但是,如果采用的是JQuery实现的局部刷新,则内存继续溢出(继续请求知道内幕的大侠们拍砖)。

结论:

     这个结论不代表唯一性和正确性,仅供参考。

     我用XMLhttpRequest代替了JQuery的ajax实现了页面的监听并且不会导致客户端的内存溢出。

     造成客户端内存溢出的代码如下:

function GetNewTel(){  
setTimeout("GetNewTel()", 5 * 1000); //每五秒执行一次
$.post("page",param,function(returnText){});
//在代码追踪的过程中,造成内存使用增加的最大元凶在post执行完后JQuery内部机制的调用。
}

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载