XMLHTTPRequest脚本中没有internet连接和超时
No internet connection and timeout in XMLHTTPRequest Script
我的web应用的许多函数上都有这段代码
function ui_editlocation(id){
var hr = new XMLHttpRequest();
var url = "scripts/ui_processing.php";
var ui = "editlocation";
var vars = "ui="+ui+"&id="+id;
hr.open("POST", url, true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
hr.onreadystatechange = function() {
if(hr.readyState == 4 && hr.status == 200) {
var return_data = hr.responseText;
document.getElementById("ui_content").innerHTML = return_data;
}
}
hr.send(vars);
document.getElementById("ui_content").innerHTML = "Loading...";
}
我想添加一些代码,如果互联网连接中断,你会收到一条消息,上面写着"请检查你的互联网连接,单击此处重试"
此外,如果有互联网连接,我希望它在30秒后超时,并说"我们目前的网络需求很高,请单击此处重试"
我需要"单击此处重试"来重新发送请求
我知道这是一个很大的要求,但任何帮助都将不胜感激。
谢谢Carl
function ui_editlocation(id){
var hr = new XMLHttpRequest();
var timeout=setTimeout(function(){
hr.abort();
timeout=null;
if(confirm("Do you want to try again?")){ui_editlocation(id);}
},30000);
var url = "scripts/ui_processing.php";
var ui = "editlocation";
var vars = "ui="+ui+"&id="+id;
hr.open("POST", url, true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
hr.onreadystatechange = function() {
if(hr.readyState == 4 && hr.status == 200) {
if(timeout){cancelTimeout(timeout);timeout=null;}
var return_data = hr.responseText;
document.getElementById("ui_content").innerHTML = return_data;
}
}
hr.send(vars);
document.getElementById("ui_content").innerHTML = "Loading...";
}
相关文章:
- 使用优化器在慢速连接上加载main.js时需要js超时
- 如何在自动重新连接超时后重新连接socket.io客户端
- AngularjS到ElasticSearch的连接超时
- 节点.js浏览器响应:连接超时
- 加载资源时出现 OpenTok JS 连接超时问题
- 在 Node 中,创建具有“等待连接”超时的 http 连接的好方法是什么
- 节点.js npm 安装错误连接超时
- NodeJS+Mongoose连接超时
- 如何解决“;连接超时”;错误
- socket.io事件重新连接超时
- Strophe.js客户端连接到服务器,断开连接/超时
- Javascript:如何检测facebook连接超时错误
- WebApi Catch连接超时错误
- 插入数据库(node.js)时Mysql连接超时
- Html5视频慢速连接超时
- Express.js 4.12连接超时上限
- Node.js无法加载网页,连接超时
- 在node.js中运行应用程序时出现连接超时错误
- Ldapjs在一段时间后连接超时
- 仅针对一个特定函数分析连接超时