用setTimeout来处理XMLHttpRequest对象的请求过期
来源:互联网 发布:mac版迅雷开机自动启动 编辑:程序博客网 时间:2024/05/17 05:59
在XMLHttpRequest对象中,我们所熟知的一个readyState状态值就是4,它表示响应完成,然而并没有哪个值告诉我们响应过期,一旦响应过期,浏览器看上去就像挂起,大家应该都遇到过,就像是死机了。这种状况我们可以用setTimeout()方法来解决,一旦请求失效,就向用户提醒过期信息。下面是具体的实现方法:
一. setTimeout函数的功能
(1)使用方法
var timer = setTimeout(handlemethod, delaytime);clearTimeout(timer);
如上,该函数有两个参数,第一个是指定暂停时间过后要执行的函数,第二个是暂停的时间,单位为毫秒(ms),还有一个返回值,可以使用clearTimeout(timer)
,参数为上面的返回值来清除延时。两个函数结合使用。
(2)小例子,可以看出setTimeout()函数如何执行:
var timer = setTimeout(function(){ for (var i = 0; i < 10; i++){ console.log(i); }},5000);setTimeout(function(){ if (timer){ clearTimeout(timer); alert("上面的定时不会执行了!"); }},2000);
运行上面的函数就会发现,在两秒过后,并没有打印出i的值,因为两秒时,它还没有执行,就被清除了。
二. setTimeout处理请求过期
方法如下:
function handle(time){ var request = new XMLHttpRequest(); if (time > 0){ var timer = setTimeout(function(){ alert("请求过期!"); }, time); } request.open(get, url); request.onreadystatechange = function(){ if (timer) clearTimeout(timer); //请求没有过期,删除过期执行函数 if (request.readystate == 4) { //执行请求成功后的方法。。。 } }; request.send();}
如果理解了setTimeout()函数如何执行,剩下的都很好理解的,哪里不对欢迎指正。
0 0
- 用setTimeout来处理XMLHttpRequest对象的请求过期
- XMLHttpRequest对象创建数据请求处理
- 用网络来解决XMLHTTPRequest对象的跨域通信
- Ajax 请求session过期的统一处理
- 全面剖析XMLHttpRequest对象——处理请求
- XMLHttpRequest请求的缓存问题的处理方案
- AJAX 多次发送异步请求的 XmlHttpRequest 对象的设置
- 使用XMLHttpRequest对象向服务器发送简单的请求
- 创建XMLHttpRequest对象并向服务器发送请求的方法
- AJAX概念介绍:2.2 XMLHttpRequest对象的创建、请求、响应
- ajax的xmlHttpRequest请求
- Ajax请求session过期处理
- 基于retrofit网络请求token过期的处理逻辑
- 用js内置对象XMLHttpRequest 来用ajax
- AJAX中同时发送多个请求XMLHttpRequest对象处理方法
- AJAX中同时发送多个请求XMLHttpRequest对象处理方法
- AJAX中同时发送多个请求XMLHttpRequest对象处理方法
- AJAX中同时发送多个请求XMLHttpRequest对象处理方法
- 无法捕获异常:Java关于在catch中抛出一个异常给外围函数却捕获不到该异常的思考
- 探秘Java中String、StringBuilder以及StringBuffer
- ThinkPHP之page类的样式定义
- 字符串匹配-复旦大学机试(水题)
- bitcode bundle could not be generated because '/Applications/Xcode.app
- 用setTimeout来处理XMLHttpRequest对象的请求过期
- 真机测试打开Log日志
- Hadoop 集群 Hive 部署,安装mysql metastore
- this关键字
- IDEA的入门使用(三)——模板
- 【J2EE】拒绝乱码(各种Spring等web框架)
- Redis常用命令-Set
- RDD怎么找下标,怎么创建数组?
- 使用__slots__