首页 > 代码库 > AjaxPro实现异步调用,解决浏览器假死及超时问题

AjaxPro实现异步调用,解决浏览器假死及超时问题

平时使用AjaxPro的时候基本上很简单

var msg = UseClass.Method(argument).value;

因为后台响应比较慢,所以加了个“loading”,然后后面调用AjaxPro

//加载Loading
$("#load").show();
//Ajax
var msg = UseClass.Method(argument).value;
//隐藏加载
<pre name="code" class="javascript">$("#load").hide();


结果,在整个表现上,并不是自己想要的结果。这个时候,并不会出现loading。

网上查了一下,这样是AjaxPro的同步调用方式,而且AjaxPro也确实提供了异步方式。

//加载Loading
$("#load").show();
//Ajax
UseClass.Method(argument,function(data){
	if(data.error != null){
		//隐藏加载
		$("#load").hide();
		var msg = data.value;
	}
});

满以为这样就会解决问题,但是加载的小图标转啊转啊转,小心脏都不好了!!

加载中

在浏览器里看到,页面加载已经超时了。10s

只能设置超时时间。

$(document).ready(function(){
	//设置前提是AjaxPro已经存在,最好是在PageLoad以后再设置
	AjaxPro.timeoutPeriod = 100000;
	AjaxPro.onTimeout = function(){
		alert("哎呀我去,超时了!!!");
	}
});

到这里问题就解决了。

AjaxPro实现异步调用,解决浏览器假死及超时问题