我正在网上寻找资料,但是很难获得文档。我们都知道使用浏览器的内置XMLHttpRequest
对象进行基本的AJAX调用(此处为现代浏览器):
var xmlHttp = new XMLHttpRequest(); // Assumes native object
xmlHttp.open("GET", "http://www.example.com", false);
xmlHttp.send("");
var statusCode = xmlHttp.status;
// Process it, and I'd love to know if the request timed out
因此,有没有一种方法可以通过在浏览器中检查XMLHttpRequest对象来检测到AJAX调用超时?建议我做类似的事情window.setTimeout(function(){ xmlHttp.abort() }, 30000);
吗?
谢谢!
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", "http://www.example.com", true);
xmlHttp.onreadystatechange=function(){
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
clearTimeout(xmlHttpTimeout);
alert(xmlHttp.responseText);
}
}
// Now that we're ready to handle the response, we can make the request
xmlHttp.send("");
// Timeout to abort in 5 seconds
var xmlHttpTimeout=setTimeout(ajaxTimeout,5000);
function ajaxTimeout(){
xmlHttp.abort();
alert("Request timed out");
}
在IE8中,您可以向对象添加超时事件处理程序XMLHttpRequest
。
var xmlHttp = new XMLHttpRequest();
xmlHttp.ontimeout = function(){
alert("request timed out");
}
我建议不要像代码中所暗示的那样进行同步调用,也建议使用javascript框架来做到这一点。jQuery 是最受欢迎的一种。它使您的代码更高效,更易于维护并且与跨浏览器兼容。
问题内容: 我正在网上浏览,但是很难获得文档。我们都知道使用浏览器的内置对象进行基本的AJAX调用(此处为现代浏览器): 因此,有没有一种方法可以通过在浏览器中检查XMLHttpRequest对象来检测AJAX调用是否超时?建议我做类似的事情吗? 谢谢! -麦克风 问题答案: 更新: 这是一个如何处理超时的示例: 在IE8中,您可以向对象添加超时事件处理程序。 我建议不要像代码所暗示的那样进行同步
问题内容: 我一直在网上搜索,试图找到一个直接的答案。有谁知道浏览器请求ajax的默认超时时间?还可以通过版本进行更改吗? 问题答案: 我认为浏览器的AJAX没有超时,只有同步或异步请求。同步-首先冻结JavaScript执行,直到请求返回;异步- 不冻结JavaScript执行,仅将请求从执行流中移出;如果您有回调函数,它将与正在运行的脚本并行执行该函数(类似于线程)
当我在chrome上使用ipad时,useragent是 Mozila/5.0(iPad;CPU OS 9_3_5像Mac OS X)AppleWebKit/601.1(KHTML像Gecko)CruiOS/57.0.2987.137 Mobile/13G36.... 问题:因为在iPadOS上,Safari上的用户代理与MacOS笔记本上的相同,遵循https://forums.develope
问题内容: 我是angularjs的新手。如何在angularjs中检测到userAgent。可以在控制器中使用它吗?尝试了以下类似的方法,但是没有运气! 我需要专门检测IE9! 问题答案: 就像Eliran Malka询问的那样,为什么需要检查IE 9? 检测浏览器的品牌和版本通常是一种难闻的气味。通常,这意味着如果您需要JavaScript来检测特定版本的浏览器,则代码会有更大的问题。 在某些
我是新的angularjs。我怎么能检测用户代理在angularjs。有可能在控制器中使用它吗?尝试了下面这样的东西,但没有运气! 我需要专门检测IE9!
问题内容: 如何使用JavaScript确定确切的浏览器和版本? 问题答案: 顾名思义,这将告诉您浏览器提供的名称和版本号。 当您在多个浏览器上测试新代码时,它对于对测试结果和错误结果进行排序非常方便。