У меня есть код вроде этого - он в основном делает вызов AJAx, а затем отображает диалоговое окно. Когда ответ получен для диалогового окна вызова AJAX, будет обновлен результат или ошибка. Он отлично работает до сих пор. Но, если тайм-аут возникает для вызова AJAX, в диалоговом окне отображается сообщение об ошибке, а затем оно немедленно обновляет страницу (и это не приводит к закрытию действия диалога). Не знаете, как остановить автоматическое обновление страницы в случае таймаута. Любые предложения или материалы приветствуются. Благодарю.dojo.xhrget() таймаут приводит к автоматическому обновлению страницы. Как это остановить?
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");
}
});