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请求在数据量大的时候出现超时的解决方法
最近在用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 怎么设置超时(一个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、导入、导出)
一.一般页面登录超时验证,可以用过滤器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注入的脚本在这些方
随机推荐
- PHP无限分类(树形类)
- hta查看磁盘空间的脚本
- PowerShell中调用.NET对象的静态方法、静态属性和类方法、类属性例子
- 详解angularjs中的隔离作用域理解以及绑定策略
- vbscript,jscript脚本编程教学(1)
- VBS教程:函数-String 函数
- Mac下安装tomcat的教程详解
- 在Oracle 8x实现自动断开后再连接
- ASP.NET编程时遇到GridView的一个问题 激发了未处理的事件"PageIndexChanging"
- 简体中文转换繁体中文(实现代码)
- c#中的常用ToString()方法总结
- 使用winapi安装Windows服务示例程序
- 详解原生JavaScript实现jQuery中AJAX处理的方法
- JavaScript中的冒泡排序法
- 让电脑右下角显示你想要文字
- JQuery 初体验(建议学习jquery)
- Javascript前端UI框架Kit使用指南之kitjs的对话框组件
- C#4.0新特性之协变与逆变实例分析
- 详解JavaScript中常用的函数类型
- 浅谈Docker基础之数据管理