博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用setTimeoutc处理javascript ajax请求超时
阅读量:6760 次
发布时间:2019-06-26

本文共 1141 字,大约阅读时间需要 3 分钟。

用过jquery的人都知道里面的$.ajax能设置超时处理及各种错误的抛出,确实好用。原生的js没有对应的方法,还得写各种兼容。在实际运用中,不管请求是否成功都应该做容错处理,

不然用户不知道到底发生了什么,体验非常不好。超时就是一种情况,不可能请求失败了还让用户在那傻傻等待,是谁都受不了。下面就介绍一下用setTimeout来实现请求的超时处理。

 

function createXMLHttpRequest() {    var request = false;    if(window.XMLHttpRequest) {        request = new XMLHttpRequest();        if(request.overrideMimeType) {            request.overrideMimeType('text/xml');        }    } else if(window.ActiveXObject) {        var versions = ['Microsoft.XMLHTTP', 'MSXML.XMLHTTP', 'Microsoft.XMLHTTP','Msxml2.XMLHTTP.7.0', 'Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.5.0','Msxml2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP'];        for(var i=0; i

 

//使用举例var xmlhttp = createXMLHttpRequest();var t1; //用来作超时处理function adduserok(request) {    alert(request.responseText);    if (t1) clearTimeout(t1);}function connecttoFail() {    if (xmlhttp) xmlhttp.abort();    alert ('Time out');}if (xmlhttp) {    ajax(xmlhttp,"POST", "http://10.1.2.187/adduser.cgi","act=do&user=abc",adduserok);    t1 = setTimeout(connecttoFail,30000);}else {    alert ("Init xmlhttprequest fail");}

 

转载于:https://www.cnblogs.com/hutuzhu/p/4203956.html

你可能感兴趣的文章
【Linux】linux常用基本命令
查看>>
4-python学习——数据操作
查看>>
Oracle函数
查看>>
Unity3D学习笔记第一课
查看>>
【redis使用全解析】常见运维操作
查看>>
hdu2377Bus Pass(构建更复杂的图+spfa)
查看>>
Vc6.0打开该文件坠毁
查看>>
[LeetCode] Lowest Common Ancestor of a Binary Search Tree 二叉搜索树的最小共同父节点
查看>>
2015第29周三
查看>>
hdu5024(dp)
查看>>
算法-无向图(连通分量,是否有环和二分图)
查看>>
IOS runtime动态运行时一
查看>>
媒体播放器三大底层架构
查看>>
CCBValue
查看>>
C#一些知识点:委托和事件的区别
查看>>
linux修改挂载目录
查看>>
Cocos2d-js-v3.2 在 mac 上配置环境以及编译到 Andorid 的注意事项(转)
查看>>
android开源项目学习
查看>>
提升Mac os x 10.10+xcode6.1之后,Cocoapods发生故障的解决方案
查看>>
Developer Tool - 1. Text Tool and GNU/Linux Tool
查看>>