ajax的timeout问题

amass1024 2009-04-07 09:15:33

timeout: function() {
this.duration = new Date().getTime() - this.__start;
var r = this.onTimeout(this.duration, this); if(typeof r == "undefined" || r != false) {
this.abort();
} else {
this.timeoutTimer = setTimeout(this.timeout.bind(this), AjaxPro.timeoutPeriod);
}
},


使用ajax后,总是在红色字体的地方出现错误,请达人指教!
是不是这个ajax版本有问题,我用的官网公布的最新版本
...全文
1534 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lijin84100 2011-01-06
  • 打赏
  • 举报
回复
谢谢了,各位大哥,我终于解决了这个问题!
ciznx 2009-11-11
  • 打赏
  • 举报
回复
重新编译后得到的是 AjaxPro.dll ?
直接改名后当作 AjaxPro.2.dll立即使用吗?
阿非 2009-04-07
  • 打赏
  • 举报
回复
上面就是core.js 的部分源码,太长了就不贴了。
你要是 还下不了,就给我发消息
阿非 2009-04-07
  • 打赏
  • 举报
回复

Object.extend(Function.prototype, {
getArguments: function() {
var args = [];
for(var i=0; i<this.arguments.length; i++) {
args.push(this.arguments[i]);
}
return args;
}
}, false);

var MS = {"Browser":{}};

Object.extend(MS.Browser, {
isIE: navigator.userAgent.indexOf('MSIE') != -1,
isFirefox: navigator.userAgent.indexOf('Firefox') != -1,
isOpera: window.opera != null
}, false);

var AjaxPro = {};

AjaxPro.IFrameXmlHttp = function() {};
AjaxPro.IFrameXmlHttp.prototype = {
onreadystatechange: null, headers: [], method: "POST", url: null, async: true, iframe: null,
status: 0, readyState: 0, responseText: null,
abort: function() {
},
readystatechanged: function() {
var doc = this.iframe.contentDocument || this.iframe.document;
if(doc != null && doc.readyState == "complete" && doc.body != null && doc.body.res != null) {
this.status = 200;
this.statusText = "OK";
this.readyState = 4;
this.responseText = doc.body.res;
this.onreadystatechange();
return;
}
setTimeout(this.readystatechanged.bind(this), 10);
},
open: function(method, url, async) {
if(async == false) {
alert("Synchronous call using IFrameXMLHttp is not supported.");
return;
}
if(this.iframe == null) {
var iframeID = "hans";
if (document.createElement && document.documentElement &&
(window.opera || navigator.userAgent.indexOf('MSIE 5.0') == -1))
{
var ifr = document.createElement('iframe');
ifr.setAttribute('id', iframeID);
ifr.style.visibility = 'hidden';
ifr.style.position = 'absolute';
ifr.style.width = ifr.style.height = ifr.borderWidth = '0px';

this.iframe = document.getElementsByTagName('body')[0].appendChild(ifr);
}
else if (document.body && document.body.insertAdjacentHTML)
{
document.body.insertAdjacentHTML('beforeEnd', '<iframe name="' + iframeID + '" id="' + iframeID + '" style="border:1px solid black;display:none"></iframe>');
}
if (window.frames && window.frames[iframeID]) {
this.iframe = window.frames[iframeID];
}
this.iframe.name = iframeID;
this.iframe.document.open();
this.iframe.document.write("<"+"html><"+"body></"+"body></"+"html>");
this.iframe.document.close();
}
this.method = method;
this.url = url;
this.async = async;
},
setRequestHeader: function(name, value) {
for(var i=0; i<this.headers.length; i++) {
if(this.headers[i].name == name) {
this.headers[i].value = value;
return;
}
}
this.headers.push({"name":name,"value":value});
},
getResponseHeader: function(name, value) {
return null;
},
addInput: function(doc, form, name, value) {
var ele;
var tag = "input";
if(value.indexOf("\n") >= 0) {
tag = "textarea";
}

if(doc.all) {
ele = doc.createElement("<" + tag + " name=\"" + name + "\" />");
}else{
ele = doc.createElement(tag);
ele.setAttribute("name", name);
}
ele.setAttribute("value", value);
form.appendChild(ele);
ele = null;
},
send: function(data) {
if(this.iframe == null) {
return;
}
var doc = this.iframe.contentDocument || this.iframe.document;
var form = doc.createElement("form");

doc.body.appendChild(form);

form.setAttribute("action", this.url);
form.setAttribute("method", this.method);
form.setAttribute("enctype", "application/x-www-form-urlencoded");

for(var i=0; i<this.headers.length; i++) {
switch(this.headers[i].name.toLowerCase()) {
case "content-length":
case "accept-encoding":
case "content-type":
break;
default:
this.addInput(doc, form, this.headers[i].name, this.headers[i].value);
}
}
this.addInput(doc, form, "data", data);
form.submit();

setTimeout(this.readystatechanged.bind(this), 0);
}
};

var progids = ["Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
var progid = null;

if(typeof ActiveXObject != "undefined") {
var ie7xmlhttp = false;
if(typeof XMLHttpRequest == "object") {
try{ var o = new XMLHttpRequest(); ie7xmlhttp = true; }catch(e){}
}
if(typeof XMLHttpRequest == "undefined" || !ie7xmlhttp) {
XMLHttpRequest = function() {
var xmlHttp = null;
if(!AjaxPro.noActiveX) {
if(progid != null) {
return new ActiveXObject(progid);
}
for(var i=0; i<progids.length && xmlHttp == null; i++) {
try {
xmlHttp = new ActiveXObject(progids[i]);
progid = progids[i];

}catch(e){}
}
}
if(xmlHttp == null && MS.Browser.isIE) {
return new AjaxPro.IFrameXmlHttp();
}
return xmlHttp;
};
}
}
amass1024 2009-04-07
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 Sandy945 的回复:]
http://hi.baidu.com/%D2%F4%C0%D6%BF%E1gg/blog/item/f2590699a49b0d0f6f068c7b.html
[/Quote]

这个帖子我也看过,但是始终没有能够找到ajaxpro的源代码
amass1024 2009-04-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jdbcodbc 的回复:]
引用 2 楼 Sandy945 的回复:
JScript code
var r = this.timeout(this.duration, this);

我记的JQ是不带ON的,你去了试试看吧
[/Quote]

我贴的那段代码是ajax的内核源码
amass1024 2009-04-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jdbcodbc 的回复:]
引用 2 楼 Sandy945 的回复:
JScript code
var r = this.timeout(this.duration, this);

我记的JQ是不带ON的,你去了试试看吧
[/Quote]

我贴的那段代码是ajax的内核源码
jdbcodbc 2009-04-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 Sandy945 的回复:]
JScript code
var r = this.timeout(this.duration, this);
[/Quote]
我记的JQ是不带ON的,你去了试试看吧
阿非 2009-04-07
  • 打赏
  • 举报
回复

var r = this.timeout(this.duration, this);

amass1024 2009-04-07
  • 打赏
  • 举报
回复
var r = this.onTimeout(this.duration, this);
是这句话开始出现问题
amass1024 2009-04-07
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 Sandy945 的回复:]
上面就是core.js 的部分源码,太长了就不贴了。
你要是 还下不了,就给我发消息
[/Quote]

非常感谢Sandy945提供的源代码下载地址
问题已经顺利解决

62,052

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧