检查超时-Ajax之四
有时发出一个请求,后端什么时候返回前端并不清楚。有可能是1秒,3秒甚至更长时间。因此有必要添加一个参数来设置等待的时间,如果在设定的时间内没有返回结果则放弃该次请求。
实现思路:发出请求后指定一个时间,如超过该时间没有返回结果则忽略。window对象的setTimeout方法再次起作用了(setTimeout能解决很多IE下古怪的bug)
代码如下:
var timeout = opt.timeout || 0;//指定是否启用请求超时处理,不传参数timeout则忽略var isTimeout = false; //一个标志位,是否超时if(timeout>0){setTimeout(function(){isTimeout = true;},timeout);
}//最后将isTimeout用在onreadystatechange处理中
xhr.onreadystatechange = function(){if (xhr.readyState == 4 && !isTimeout){//当请求完成,且没有超时才处理结果_onStateChange(xhr, type, success, failure);}else{}
};
调用如下
Ajax.text('../servlet/Ajax',{timeout : 2000,success : function(){},failure : function(){}
});
后台我用servlet,直接sleep下即可模拟超时(sleep时间3000大于timeout的设置2000)
try {Thread.sleep(3000);
} catch (InterruptedException e) {e.printStackTrace();
}
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("request success");
out.flush();
out.close();
请求超时后,success/failure都不会被调用。这样处理有一定的合理性,但缺陷也显而易见,用户不知是超时了还是其它什么错误。下一篇将有所改进。
相关:
ajax_04.zip
https://github.com/snandy/io
检查超时-Ajax之四相关推荐
- 解决spring-security session超时 Ajax 请求没有重定向的问题
解决spring-security session超时 Ajax 请求没有重定向的问题 参考文章: (1)解决spring-security session超时 Ajax 请求没有重定向的问题 (2) ...
- AJAX之四 Ajax控件工具集
[学习目标] F 理解并掌握ScriptManager控件的使用 F 了解ScriptManager控件的使用 F 理解并掌握Timer控件的使用 F 理解并掌握UpdateP ...
- ajax请求如何判断超时,ajax请求超时判断(转载)
ajax请求时有个参数可以借鉴一下 var ajaxTimeOut = $.ajax({ url:'', //请求的URL timeout : 1000, //超时时间设置,单位毫秒 type : ' ...
- 单点登录,session超时, ajax链接处理
1 错误场景 cas session 超时问题:XMLHttpRequest cannot loadhttps://www.hf.com:8443/cas/login?service=http%3A% ...
- (五)SSO之CAS框架单点登录, session超时, ajax链接处理
1 错误场景 cas session 超时问题:XMLHttpRequest cannot loadhttps://www.hf.com:8443/cas/login?service=http%3A% ...
- LwIP 之四 超时处理/定时器(timeouts.c/h)
目前,网络上多数文章所使用的LwIP版本为1.4.1.最新版本为2.0.3.从1.4.1到2.0.3(貌似从2.0.0开始),LwIP的源码有了一定的变化,甚至于源码的文件结构也不一样,内部的一些 ...
- javascript进阶——Ajax
统的Web 页面和应用中,用户每点击页面上的某个部分,浏览器就会向服务器发出一个请求,等待服务器做出响应,然后返回一个完整新网页,但在大多数情况下用户不得不忍受页面闪烁和长时间的等待.随着Web技术的 ...
- ARP的超时重新请求
文章目录 1 原理 2 代码实现 1 原理 问题:ARP表项是否一直有效? 实现原理如下: 2 代码实现 先看下代码组织结构: prot_pcap.c中增加如下代码: /*** 获取自程序启动以来,过 ...
- 第一百七十四节,jQuery,Ajax进阶
jQuery,Ajax进阶 学习要点: 1.加载请求 2.错误处理 3.请求全局事件 4.JSON 和 JSONP 5.jqXHR 对象 在 Ajax 课程中,我们了解了最基本的异步处理方式.本章,我 ...
最新文章
- 中序遍历的非递归算法
- ARP攻击实战之WinArpAttacker
- 公司年会在民俗文化村举行
- STS安装 activiti-designer-5.18.0插件
- 软件设计师 - 算法思想
- 爬虫-请求类对象的创建-Request类
- django+mysql+插入数据库网页展示内容
- Android 系统(177)---Android消息机制分析:Handler、Looper、MessageQueue源码分析
- 区块链 智能合约是有状态的吗
- MSI Center局域网管理器开启导致电脑网络质量变差、网速低
- lro gro_斯威夫特:Gro吟M
- 计算机控制面板设置密码,如何设置修改电脑的开机密码
- 【转】android builder.setPositiveButton处 报错
- STM32的Flash
- 儿童节活动需要的设计感海报
- 解决Pycharm出现的Debug无法正常运行(Frames are not available)的问题
- python简单实例-python简单案例
- 中鑫优配谨防黑周四出现这种走势!
- 什么是网络安全?网络安全包括哪几个方面?
- u盘安装linux戴尔boot设置,戴尔台式机bios设置,详细教您如何安装U盘启动
热门文章
- Spring Boot第四篇:SpringBoot 整合JPA
- 一天1300 Star量,GitHub上新官方命令行工具
- 512块A100,AlphaFold训练时间从11天压缩至67小时
- 精度45.9%,推理速度72.9FPS,百度飞桨推出工业级目标检测模型 PP-YOLO
- 35国,14年,世界最大科学项目,「人造太阳」即将诞生!
- YOLOv5 它来了!基于 PyTorch,体积比 YOLOv4 小 90%,速度却超 2 倍!
- 大佬算法校招经验总结(拼多多、小米、华为、百度等)
- PyTorch常用代码段整理合集,建议收藏!
- 用Python分析了1w四六级数据,教你如何通过四六级!
- 导致美国大范围网络瘫痪的Mirai僵尸网络