check('123',1);
check('444',2);
check('345',2);
function check(opt,id){ //id值是随机的
switch(id)
{
case 1:
postdata = 'aaaa';
break
case 2:
postdata = 'bbbb';
break
default:
postdata = 'ccc';
break
}
var x = new cosAjax('HTML');
x.post('http://127.0.0.1/add.asp?a='+opt,'',function(s){
alert(opt); //opt的内容都是345
});当ajax post 3次同时提交时,opt的值为什么3次都是345?? 正常应该弹出一个123和一个444和一个345有什么解决的方法吗? 感谢!!cosAjax:
function cosAjax(recvType) {
var aj = new Object();
aj.targetUrl = '';
aj.sendString = '';
aj.recvType = recvType ? recvType : 'HTML';
aj.resultHandle = null;
aj.createXMLHttpRequest = function() {
var request = false;
if(window.XMLHttpRequest) {
request = new XMLHttpRequest();
if(request.overrideMimeType) {
request.overrideMimeType('text/xml');
}
} else if(window.ActiveXObject) {
var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.7.0', 'Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];
for(var i=0; i<versions.length; i++) {
try {
request = new ActiveXObject(versions[i]);
if(request) {
return request;
}
} catch(e) {
}
}
}
return request;
}
aj.XMLHttpRequest = aj.createXMLHttpRequest();
aj.processHandle = function() {
if(aj.XMLHttpRequest.readyState == 4) {
if(aj.XMLHttpRequest.status == 200) {
if(aj.recvType == 'HTML') {
aj.resultHandle(aj.XMLHttpRequest.responseText);
} else if(aj.recvType == 'XML') {
aj.resultHandle(aj.XMLHttpRequest.responseXML);
}
}
}
}
aj.get = function(targetUrl, resultHandle) {
aj.targetUrl = targetUrl;
aj.XMLHttpRequest.onreadystatechange = aj.processHandle;
aj.resultHandle = resultHandle;
if(window.XMLHttpRequest) {
aj.XMLHttpRequest.open('GET', aj.targetUrl);
aj.XMLHttpRequest.send(null);
} else {
aj.XMLHttpRequest.open("GET", targetUrl, true);
aj.XMLHttpRequest.send();
}
}
aj.post = function(targetUrl, sendString, resultHandle) {
aj.targetUrl = targetUrl;
aj.sendString = sendString;
aj.XMLHttpRequest.onreadystatechange = aj.processHandle;
aj.resultHandle = resultHandle;
aj.XMLHttpRequest.open('POST', targetUrl);
aj.XMLHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
aj.XMLHttpRequest.send(aj.sendString);
}
return aj;
}
------------------------------------------
这个问题之前问过,http://bbs.csdn.net/topics/390281664 有朋友回答。稍作修改后的这个函数,若利用他的方法还是比较模糊,有无更简易的办法?他的方案是判断函数完成后,再次执行; 有无办法可以同时并发,类似于多线程模式呢?这种方法目前比较模糊
没有方法的重载 也就是说方法重名,即使参数不同,依然以最后一次定义的为准
对于如何实现方法的重载,需要用到arguments arguments:代表当前方法的所有参数值组成的数组,实现类似于重载的效果arguments具体怎么用,我也没有用过,只是以前看资料的时候简单的看到过这样一段内容,
你自己查一下吧,希望对你有用。