Dojo xhrget()超时会导致自动页面刷新。如何阻止这种情况?
我有这样的代码——它基本上进行AJAx调用,然后显示对话框。当收到AJAX调用的响应时,对话框将更新结果或错误。在这里之前一切都很好。但是,如果AJAX调用超时,对话框中会显示错误消息,然后它会立即刷新页面(并且不会触发对话框的关闭操作)。不确定在超时情况下如何停止自动刷新页面。非常感谢您的任何建议或意见。谢谢Dojo xhrget()超时会导致自动页面刷新。如何阻止这种情况?,dojo,timeout,Dojo,Timeout,我有这样的代码——它基本上进行AJAx调用,然后显示对话框。当收到AJAX调用的响应时,对话框将更新结果或错误。在这里之前一切都很好。但是,如果AJAX调用超时,对话框中会显示错误消息,然后它会立即刷新页面(并且不会触发对话框的关闭操作)。不确定在超时情况下如何停止自动刷新页面。非常感谢您的任何建议或意见。谢谢 var mainNode = dojo.create("div",{id:"mainNode"}); var brNode = dojo.create(
var mainNode = dojo.create("div",{id:"mainNode"});
var brNode = dojo.create("div",{innerHTML:"<br><br>"})
var resultNode = dojo.create("div", {id:"resultNode",innerHTML:"Copying..."});
var infoNode = dojo.create("div", {id:"infoNode"});
dojo.style(mainNode, "width","700px");
dojo.style(mainNode, "height","auto");
mainNode.appendChild(infoNode);
mainNode.appendChild(brNode);
mainNode.appendChild(resultNode);
var timeoutStr = nlsVar.FILEPUB_EXTENSION.TIMEOUT;
var timeoutVal = parseInt(timeoutStr);
console.log('timeout value ' + timeoutVal);
dojo.xhrGet({
// The following URL must match that used to test the server.
url: "/BpFilePublisher/bpfilepub",
handleAs: "json",
timeout: timeoutVal, // Time in milliseconds
preventCache: true,
// The LOAD function will be called on a successful response.
load: function(response, ioArgs) { //
var str = json.jsonBeanStringify(response);
var infoNode = dojo.byId("infoNode");
infoNode.innerHTML = response[0].info;
var resultNode = dojo.byId("resultNode");
resultNode.innerHTML = response[0].result;
dojo.style(resultNode, "backgroundColor", "lightgreen");
dojo.style(resultNode, "border", "1px green");
},
// The ERROR function will be called in an error case.
error: function(error, ioArgs) { //
console.log('error' + error);
console.log('error.responseText' + error.responseText);
var resultNode = dojo.byId("resultNode");
if ( error.responseText)
resultNode.innerHTML = error.responseText;
else {
resultNode.innerHTML = 'Timeout occured. Please try again';
isTimeout = true;
}
dojo.style(resultNode, "backgroundColor", "red");
dojo.style(resultNode, "border", "1px");
},
// Input parameters to the servlet
content: {fileName: fileName, fileId: fileId, srcCommUuid: srcCommId, bpCommId: bpCommUuid, action:action }
});
var dialogBundle = lconn.core.DialogUtil.popupForm(
nlsVar.FILEPUB_EXTENSION.COPYINTERNAL_DIALOG_TITLE,
mainNode,
'',
nlsVar.FILEPUB_EXTENSION.CANCEL_BUTTON_TITLE,
function() {
},
function() {
dialogBundle.hide();
location.reload();
}
);
dojo.addClass(dialogBundle._dialog.lotusSubmitNode, "lotusHidden");
dojo.addClass(dialogBundle._dialog.lotusBorderNode, "mydialog");
}
});
var mainNode=dojo.create(“div”,{id:“mainNode”});
var brNode=dojo.create(“div”,{innerHTML:
”})
var resultNode=dojo.create(“div”,{id:“resultNode”,innerHTML:“Copying…”);
var infoNode=dojo.create(“div”,{id:“infoNode”});
dojo.style(主节点,“宽度”,“700px”);
样式(主节点,“高度”、“自动”);
mainNode.appendChild(infoNode);
mainNode.appendChild(brNode);
mainNode.appendChild(resultNode);
var timeoutst=nlsVar.FILEPUB_EXTENSION.TIMEOUT;
var timeoutVal=parseInt(timeouttr);
log('timeout value'+timeoutVal);
dojo.xhrGet({
//以下URL必须与用于测试服务器的URL匹配。
url:“/BpFilePublisher/bpfilepub”,
handleAs:“json”,
timeout:timeoutVal,//以毫秒为单位的时间
对,,
//成功响应时将调用LOAD函数。
加载:函数(响应,ioArgs){//
var str=json.jsonBeanStringify(响应);
var infoNode=dojo.byId(“infoNode”);
infoNode.innerHTML=响应[0].info;
var resultNode=dojo.byId(“resultNode”);
resultNode.innerHTML=响应[0]。结果;
dojo.style(resultNode,“backgroundColor”,“lightgreen”);
dojo.style(结果节点,“边框”,“1px绿色”);
},
//错误情况下将调用ERROR函数。
错误:函数(错误,ioArgs){//
console.log('error'+error);
log('error.responseText'+error.responseText');
var resultNode=dojo.byId(“resultNode”);
if(error.responseText)
resultNode.innerHTML=error.responseText;
否则{
resultNode.innerHTML='发生超时。请重试';
isTimeout=true;
}
dojo.style(resultNode,“backgroundColor”,“red”);
dojo.style(resultNode,“border”,“1px”);
},
//向servlet输入参数
内容:{fileName:fileName,fileId:fileId,srccomuuid:srccomid,bpCommId:bpCommUuid,action:action}
});
var dialogBundle=lconn.core.DialogUtil.popupForm(
nlsVar.FILEPUB_扩展名.COPYINTERNAL_对话框_标题,
主节点,
'',
nlsVar.FILEPUB\u扩展名。取消按钮\u标题,
函数(){
},
函数(){
dialogBundle.hide();
location.reload();
}
);
addClass(dialogBundle.\u dialog.lotusSubmitNode,“lotusHidden”);
addClass(dialogBundle.\u dialog.lotusBorderNode,“mydialog”);
}
});
AJAX超时不应导致页面刷新。也许是其他原因造成的。可能是location.reload()