2013年5月28日20:16:21

今天又换了位置,公司发展太快,位置总是很快变得,回来后弄明白之前一直困扰我的一个问题:为什么ajax变量为局部对象时长时间计时器执行会造成内存泄露?

创建XMLHttpRequest对象的方式有两种:一是作为全局变量,二是作为局部变量,那么这两种方式下的AJAX对象的生命周期如何?考虑这个问题的原因是,如果页面不停的使用不同XMLHttpRequest对象请求,并且AJAX对象的生命周期是全局的,那么显然内存最终会被耗尽!

解决这个问题的方法似乎只能以局部变量方式创建XMLHttpRequest对象,但是局部创建的AJAX对象占用的内存什么时候被回收?请看下面的代码,是否creatConnect中send调用后就被回收?如果是这样那就糟糕了,因为当服务器有结果返回时再也找到不到ajax对象的readyState、responseText等属性,因此结论是浏览器不知道什么时候该回收ajax对象占用的内存,因为它永远不知道回调函数会什么时候被调用!按照这个结论,如果在一个页面不停的创建局部的AJAX对象,它是会吃光内存的!

posted on   时间朋友  阅读(126)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
历史上的今天:
2012-05-28 MySql中的varchar类型

导航

< 2013年5月 >
28 29 30 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示