帮看看ie中运行有没有memory leak 问题 建议不要使用 onreadystatechange 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以这样吧//初始化函数块var query = function(){} ;//把方法作为参数传入按顺序直到其中的一个成功执行var Try = { these: function() { var returnValue ; for (var i = 0, length = arguments.length; i < length; i++) { var lambda = arguments[i] ; try { returnValue = lambda() ; break; } catch (e) {} } return returnValue ; }};//ajax应用,有xml方法和json方法可以到server端请求并返回数据var ajax = query.prototype = { create: function(){ return Try.these( function() {return new XMLHttpRequest()}, function() {return new ActiveXObject('Msxml2.XMLHTTP')}, function() {return new ActiveXObject('Microsoft.XMLHTTP')} ) || false ; }, xml: function(sXML , sURL){ var oXML = new ActiveXObject("MSXML2.DOMDocument") ; oXML.async = false; oXML.loadXML(sXML); var xmlResult = this.post(oXML, sURL) ; return xmlResult.xml ; }, post: function(oXML , sURL){ var oXmlHttp = this.create() ; oXmlHttp.Open("POST" , sURL , false) ; oXmlHttp.Send(oXML) ; return oXmlHttp.responseXML ; }, json: function(url , type){ var obj = this.create() ; obj.open("POST" , url , false) ; obj.send(null) ; if (obj.responseText != "") { if (type == 'text'){ return obj.responseText ; } else { eval("var data = " + obj.responseText) ; return data ; } } }}; 同步请求相对容易处理。异步请求时(如:open("POST" , url , true))应该如何处理回调呢?if (xmlHttp.readyState == 4) 之后进行 xmlHttp=null; 是否能释放掉相关资源? IE的内存释放是在于有没有function正在调用你的xmlhttprequest实例。这里占用xmlhttprequest内存的很明显是ajax.asynchronous_call=function(a_argument, a_callback){var url = "DbServlet?timeStamp=" + new Date().getTime();var xmlHttp=ajax.createXMLHttpRequest();xmlHttp.open("POST", url, true);xmlHttp.onreadystatechange = function()//就这个functiun占用了 xmlHttp导致内存无法释放{ if (xmlHttp.readyState == 4) { if (xmlHttp.status == 200) { if(a_callback) { a_callback(eval(xmlHttp.responseText)); } } xmlHttp.onreadystatechange = null; //在这里多加一条应该就可以完全释放内存了 xmlHttp=null; }};xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");xmlHttp.send(a_argument);}; 厄 xmlHttp.onreadystatechange = null;也可以改成this.onreadystatechange = null; 求前端高手。。。浏览器视图缩小的时候怎样也使它的字体缩小???? JDBC访问MySql数据库实例 全选按钮的实现 JS求助???请各位大侠帮忙,谢谢! Jquery引用的问题. json复杂对象无法被jquery解析 javascript函数参数问题--急急急 关于iframe间打开页面 求助(页面刷新) 通过websocket接收的音频流,如何使用audio标签播放 ?哪位好心人能给解释下这段代码 JavaScript自定义类的prototype怎么使用?
var query = function(){} ;//把方法作为参数传入按顺序直到其中的一个成功执行
var Try = {
these: function() {
var returnValue ;
for (var i = 0, length = arguments.length; i < length; i++)
{
var lambda = arguments[i] ;
try {
returnValue = lambda() ;
break;
}
catch (e) {}
} return returnValue ;
}
};
//ajax应用,有xml方法和json方法可以到server端请求并返回数据
var ajax = query.prototype = {
create: function(){
return Try.these(
function() {return new XMLHttpRequest()},
function() {return new ActiveXObject('Msxml2.XMLHTTP')},
function() {return new ActiveXObject('Microsoft.XMLHTTP')}
) || false ;
},
xml: function(sXML , sURL){
var oXML = new ActiveXObject("MSXML2.DOMDocument") ;
oXML.async = false;
oXML.loadXML(sXML);
var xmlResult = this.post(oXML, sURL) ;
return xmlResult.xml ;
},
post: function(oXML , sURL){
var oXmlHttp = this.create() ;
oXmlHttp.Open("POST" , sURL , false) ;
oXmlHttp.Send(oXML) ; return oXmlHttp.responseXML ;
},
json: function(url , type){
var obj = this.create() ;
obj.open("POST" , url , false) ;
obj.send(null) ; if (obj.responseText != "") {
if (type == 'text'){
return obj.responseText ;
}
else {
eval("var data = " + obj.responseText) ;
return data ;
}
}
}
};
异步请求时(如:open("POST" , url , true))应该如何处理回调呢?
if (xmlHttp.readyState == 4) 之后进行 xmlHttp=null; 是否能释放掉相关资源?
这里占用xmlhttprequest内存的很明显是ajax.asynchronous_call=function(a_argument, a_callback)
{
var url = "DbServlet?timeStamp=" + new Date().getTime();
var xmlHttp=ajax.createXMLHttpRequest();
xmlHttp.open("POST", url, true);
xmlHttp.onreadystatechange = function()//就这个functiun占用了 xmlHttp导致内存无法释放
{
if (xmlHttp.readyState == 4)
{
if (xmlHttp.status == 200)
{
if(a_callback)
{
a_callback(eval(xmlHttp.responseText));
}
}
xmlHttp.onreadystatechange = null; //在这里多加一条应该就可以完全释放内存了
xmlHttp=null;
}
};
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlHttp.send(a_argument);
};
xmlHttp.onreadystatechange = null;
也可以改成
this.onreadystatechange = null;