zoukankan      html  css  js  c++  java
  • 2013年5月28日20:16:21

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

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

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

  • 相关阅读:
    转 Python学习(九)
    转 Python学习(八)
    转 Python学习(七)
    转 Python学习(六)
    转 Python学习(五)
    转 Python学习(四)
    转Python学习(三)
    转Python学习(一)
    面向对象第三章(向上造型、重写、重载)
    面向对象第一章(成员变量、局部变量、重载)
  • 原文地址:https://www.cnblogs.com/doit8791/p/3104325.html
Copyright © 2011-2022 走看看