因为利用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分 !!
但是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会对用户体验有正面作用,但是这样的做法明显不合理。