因为利用jquery频繁发起ajax请求发现IE7存在性能问题,内存会一直增长 (IE6,Firefox正常)
所以写了个DEMO测试了下:
1,利用jquery的ajax请求 IE7内存一直增长直至out of memory , ie6,firefox正常。
2,自己写ajax 设置XMLHttpRequest作为全局变量只创建一次 频繁发出请求 ie6,ie7,firefox均正常。
3, 自己写ajax 每次都新创建XMLHttpRequest一次 频繁发出请求  ,这个实际和1差不多 。。jquery也是每次都创建。
4,创建一个XMLHttpRequest 对象池 频繁发出请求 ,可能涉及到数组操作  ie6,ie7性能影响都比较大 。。firefox正常从上面看出是XMLHttpRequest 的对象频繁创建出了问题 ,哪位兄弟碰到过呢 ??有没好的解决方法 ??
发现限制分数了 只能给100分 !!

解决方案 »

  1.   

    是这样的,js对象只要是不用的,一定时间之后都会去清除
    但是LZ的问题在于
    1、频繁的请求即使浏览器不出问题,性能也很有问题。所以我想这个解决方案似乎需要重新考虑
    2、jQuery的ajaxSetting是这样的代码
    ajaxSettings: {
    url: location.href,
    global: true,
    type: "GET",
    contentType: "application/x-www-form-urlencoded",
    processData: true,
    async: true,
    /*
    timeout: 0,
    data: null,
    username: null,
    password: null,
    */
    // Create the request object; Microsoft failed to properly
    // implement the XMLHttpRequest in IE7, so we use the ActiveXObject when it is available
    // This function can be overriden by calling jQuery.ajaxSetup
    xhr:function(){
    return window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
    },
    accepts: {
    xml: "application/xml, text/xml",
    html: "text/html",
    script: "text/javascript, application/javascript",
    json: "application/json, text/javascript",
    text: "text/plain",
    _default: "*/*"
    }
    },
    从中我们可以看到,的确如LZ所说的每次都创建。但是之所以这样写没有问题是在于合理的ajax请求是不会出现内存不够用的问题。
    合理使用AJAX会对用户体验有正面作用,但是这样的做法明显不合理。
      

  2.   

    IE6和  IE7都是同样的GC模式。
      

  3.   

    但出现问题确实是 IE6可以通过 IE7不行  。。可能不同IE补丁有不同 这个没测
      

  4.   

    如果都是请求相同的数据的话,加个缓存配置项cache:true 应该会有些效果