微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP-具有超时条件的XMLHTTPRequest

XMLHTTPRequest中,如何使用超时条件,以便如果服务器在固定的时间段内(例如5秒)没有响应,则应显示错误消息?

换句话说,该请求应等待5秒钟,如果服务器没有响应,则该请求应显示一条消息,提示“超时.请稍后重试”.如果代码可以同时用于同步和异步会更好.

我使用的以下代码没有超时条件.

function testXMLHTTP()
{
    if(window.XMLHttpRequest)
    {
        xmlhttp = new XMLHttpRequest();
    }
    else
    {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
        }
        else if(xmlhttp.readyState < 4)
        {
            document.getElementById("myDiv").innerHTML="Loading...";
        }
    }

    xmlhttp.open("GET","abcd.PHP",true);
    xmlhttp.send();     
}

解决方法:

如果您可以为项目使用外部库,则可以考虑使用它:jQuery’s ajax module允许您为请求指定超时.在大多数浏览器中(没有,显然是IE8),没有内置的方法来处理带有XMLHTTPRequest对象的超时,因此您将需要set a timeout在一段时间后检查请求的状态. This answer to a similar question更加全面地探索了该特定解决方案,但我仍然建议您使用jQuery(如果可以的话).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐