Ajax 超时检查脚本
<script type="text/javascript">
function Ajax(){
var xhr;
if(window.XMLHttpRequest){
xhr=new XMLHttpRequest();
}else{
try{xhr=new ActiveXObject("MSXML2.XMLHTTP.6.0");}catch(e){}
try{xhr=new ActiveXObject("MSXML2.XMLHTTP");}catch(e){}
}
if(!xhr) return;
this.Xhr=xhr; //用属性存储XMLHttpRequest对象的实例
}
Ajax.prototype.send=function(url,options){
if(!this.Xhr) return;
var xhr=this.Xhr;
var aborted=false;
var _options={ //提供默认值
method:"GET",
timeout:5000,
onerror:function(){},
onsuccess:function(){}
};
for(var o in options){ //覆盖掉原来的默认值
_options[o]=options[o];
}
function checkForTimeout(){ //检查是否超时的情况
if(xhr.readyState!=4){
aborted=true;
xhr.abort(); //取消本次传输
}
}
//在规定的时间内检查readyState属性的值
setTimeout(checkForTimeout,_options.timeout);
function onreadystateCallback(){
if(xhr.readyState==4){
/*
* 注释:状态码在200内表示成功,300内表示重定向,400内是客户端错误,500是服务器端错误
*/
if(!aborted && xhr.status>=200 && xhr.status<300){ //检查aborted属性是否超时
_options.onsuccess(xhr);
}else{
_options.onerror(xhr);
}
}
}
xhr.open(_options.method,url,true);
xhr.onreadystatechange=onreadystateCallback;
xhr.send(null);
}
var ajax=new Ajax();
ajax.send("test.php",{method: GET ,timeout:100,onerror:onerror,onsuccess:onsuccess});
function onerror(xhr){
alert("Timeout");
}
function onsuccess(xhr){
alert(xhr.responseText);
}
</script>
相关推荐
-
ajax 怎么设置超时(一个action执行了2遍)
今天在测试工程时发现一个action执行了2遍 ,这个操作大致需要5分多钟才能完成,工程环境 apache2+tomcat6.0. 网上搜索发现了几个可以设置超时的地方: 1.ajax 语法去设置单位毫秒,例如: $.ajax({ url: XXX, timeout: 600000, type: 'POST', data: { }, error: function() { show_fail_meg("启动系统失败 !"); } }); 2.tomcat配置 server.xml 单位
-
Ajax请求在数据量大的时候出现超时的解决方法
最近在用EXtjs做项目,在加载数据量特别大的时候会出现加载超时现象,在FB下查看,原来是ext默认ajax请求30秒. 在网上搜到下面的解决方法,以备参考和其他人参考. ExtJS做Ajax请求的时候,默认的相应时间是30秒,如果后来数据查询时间超过30秒,ExtJS就会报错. 这就需要修改ExtJS的超时时间: 2种方法: 1:在Ajax请求的时候加:(timeout: 100000000)属性 复制代码 代码如下: Ext.Ajax.request({ url: 'foo.php', s
-
ajax提交session超时跳转页面使用全局的方法来处理
在过滤器中写入如下方法: 复制代码 代码如下: public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httprequest = (HttpServletRequest) request; HttpServletResponse httpresponse =
-
登录超时给出提示跳到登录页面(ajax、导入、导出)
一.一般页面登录超时验证,可以用过滤器filter,如下: package com.lg.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequ
-
Ajax 超时检查脚本
复制代码 代码如下: <script type="text/javascript"> function Ajax(){ var xhr; if(window.XMLHttpRequest){ xhr=new XMLHttpRequest(); }else{ try{xhr=new ActiveXObject("MSXML2.XMLHTTP.6.0");}catch(e){} try{xhr=new ActiveXObject("MSXML2.X
-
Shell+Curl网站状态检查脚本 抓出无法访问的站点
一开始搭建中国博客联盟,既有博友提醒我,做网址大全这类网站维护很麻烦,需要大量的精力去Debug一些已夭折的网站,更是拿松哥的博客大全举例.当然,我也是深以为然.前些时间,看到梦轩丽人的boke123网址大全的维护记录,好像是纯手工检查,张戈实在是佩服的五体投地,太有毅力了. 现在博客联盟也收录的博客也已破200了,全部来自自主提交,不管你是草博还是名博,张戈不会强买强卖.由于大部分都是建站不过半年的新站,半路放弃.提前太监的博客估计还是有的,于是我决定还是把站点维护这个工作做起来. 上午用PH
-
Ajax——异步检查用户名是否存在示例
在任何网站注册用户的时候,都会检查用户是否已经存在.很久以前的处理方式是将所有数据提交到服务器端进行验证,很显然这种方式的用户体验很不好:后来有了Ajax,有了异步交互,当用户输完用户名继续填写其他信息的时候,Ajax就将信息发到了服务器去检查该用户名是否已经被注册了,这样如果用户名已经存在,不用等用户将所有数据都提交就可以给出提示.采用这种方式大大改善了用户体验. regist.jsp 复制代码 代码如下: <%@ page language="java" contentTyp
-
Linux Shell+Curl网站健康状态检查脚本,抓出中国博客联盟失联站点
一开始搭建中国博客联盟,既有博友提醒我,做网址大全这类网站维护很麻烦,需要大量的精力去Debug一些已夭折的网站,更是拿松哥的博客大全举例.当然,我也是深以为然.前些时间,看到梦轩丽人的boke123网址大全的维护记录,好像是纯手工检查,张戈实在是佩服的五体投地,太有毅力了. 现在博客联盟也收录的博客也已破200了,全部来自自主提交,不管你是草博还是名博,张戈不会强买强卖.由于大部分都是建站不过半年的新站,半路放弃.提前太监的博客估计还是有的,于是我决定还是把站点维护这个工作做起来. 上午用PH
-
Ajax异步检查用户名是否存在
在任何网站注册用户的时候,都会检查用户是否已经存在.很久以前的处理方式是将所有数据提交到服务器端进行验证,很显然这种方式的用户体验很不好:后来有了Ajax,有了异步交互,当用户输完用户名继续填写其他信息的时候,Ajax就将信息发到了服务器去检查该用户名是否已经被注册了,这样如果用户名已经存在,不用等用户将所有数据都提交就可以给出提示.采用这种方式大大改善了用户体验,今天就一起跟大家聊聊这种交互方式. 下面是用JS获取用户Id然后将其发送给user_validate.jsp页面,然后通过callb
-
利用Ajax实现在脚本里传值实例介绍
页面脚本: 复制代码 代码如下: function ajaxSave(URLS) { //定义一个变量用于存放XMLHttpRequest对象 var xmlhttp; //定义一个变量用于存放 从服务器返回的响应结果 var responseContext = ""; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpRequest();
-
为jquery的ajax请求添加超时timeout时间的操作方法
下面给大家介绍为jquery的ajax请求添加超时timeout时间的实例 有时侯要用ajax来轮询某个服务是否可用,但是各个浏览器ajax的超时时间有可能不一样,所以希望ajax能只尝试几秒钟,然后隔几秒再次发送一次ajax检查一次.可以用timeout属性. var checkLoading = function(timer) { //先延时再获取状态,否则立即获取可能重启前的服务还没有关闭 setTimeout(function() { $.ajax({ url: '/onceos/ver
-
解决Shiro 处理ajax请求拦截登录超时的问题
目录 Shiro 处理ajax请求拦截登录超时 配置全局ajax配置 Shiro session超时页面跳转的处理 问题描述 ajax请求超时处理 后端Filter代码 前端通用ajax处理 非ajax请求超时跳转 Shiro 处理ajax请求拦截登录超时 配置全局ajax配置 $.ajaxSetup({ complete:function(XMLHttpRequest,textStatus){ if(textStatus=="parsererror"){ $.messager.ale
-
用AJAX返回HTML片段中的JavaScript脚本
这是AJAX开发中很常见的问题,如果你不是一直在用JavaScript框架做开发,相信你早就发现这个问题了.本文分析了两个解决办法,其中一个是讲解jQuery框架的实现. 一. 问题描述 下面举个简单的例子,演示问题所在.在下面的例子中,假设变量responseText就是AJAX加载的HTML片段数据,其中包含脚本弹出一条消息,用innerHTML方法插入ID为ajaxData的DIV中,你可能期望看到弹出那个消息框,结果你发现没有,问题就是这样. 复制代码 代码如下: <div id="
-
浏览器环境下JavaScript脚本加载与执行探析之动态脚本与Ajax脚本注入
在<浏览器环境下JavaScript脚本加载与执行探析之defer与async特性>中,我们研究了延迟脚本(defer)和异步脚本(async)的执行时机.浏览器支持情况.浏览器bug以及其他的细节问题.而除了defer和async特性,动态脚本和Ajax脚本注入也是两种常用的创建无阻塞脚本的方法.总的来看,这两种方法都能达到脚本加载不影响页面解析和渲染的作用,但是在不同的浏览器中,这两种技术所创建的脚本的执行时机还是有一定差异,今天我们再来探讨一下通过动态脚本技术和Ajax注入的脚本在这些方
随机推荐
- Dojo 学习笔记入门篇 First Dojo Example
- 正则表达式验证身份证号码和邮箱、判断checked选中状态
- iOS开发实现随机图片验证码封装
- JavaScript学习点滴 call、apply的区别
- 防御SQL注入的方法总结
- AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
- FLASH 0DAY 详细分析和总结图文
- XP与98系统双网卡共享上网设置方法
- js中判断数字\字母\中文的正则表达式 (实例)
- 《PHP边学边教》(02.Apache+PHP环境配置——下篇)
- Python with用法实例
- Android App中ViewPager与Fragment结合的一些问题解决
- MySQL中使用表别名与字段别名的基本教程
- Android RecyclerView选择多个item的实现代码
- Bootstrap如何创建表单
- 怎么让表格为固定大小,超出的部分显示为省略号
- oracle ORA-01114、ORA-27067错误解决方法
- javascript对象的使用和属性操作示例详解
- IE:脱机浏览网页
- javaweb判断当前请求是否为移动设备访问的方法