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

平时使用AjaxPro的时候基本上非常easy

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("哎呀我去。超时了!!

!

");
	}
});

到这里问题就攻克了。

时间: 2024-11-06 02:10:31

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

浏览器假死

在Web开发的时候经常会遇到浏览器不响应事件进入假死状态,甚至弹出"脚本运行时间过长"的提示框,如果出现这种情况说明你的脚本已经失控了,必须进行优化. 为什么会出现这种情况呢,我们先来看一下浏览器的内核处理方式: 浏览器的内核是多线程的,它们在内核制控下相互配合以保持同步,一个浏览器至少实现三个常驻线程:javascript引擎线程,GUI渲染线程,浏览器事件触发线程. JavaScript引擎是基于事件驱动单线程执行的,JS引擎一直等待着任务队列中任务的到来然后加以处理,浏览器无论再

谈.Net委托与线程——解决窗体假死

引言 在之前的<创建无阻塞的异步调用>中,已经介绍过异步调用的编写步骤和实施原理.异步调用是CLR为开发者提供的一种重要的编程手段,它也是构建高性能.可伸缩应用程序的关键.在多核CPU越来越普及的今天,异步编程允许使用非常少的线程执行很多操作.我们通常使用异步完成许多计算型.IO型的复杂.耗时操作,去取得我们的应用程序运行所需要的一部分数据.在取得这些数据后,我们需要将它们绑定在UI中呈现.当数据量偏大时,我们会发现窗体变成了空白面板.此时如果用鼠标点击,窗体标题将会出现"失去响应&

setTimeout 导致的浏览器假死

问题   前几天,同事遇到一个浏览器假死的问题.就是浏览器在响应一个请求的时候,就突然不响应时间,进入假死状态,Cup也飙升到100%. 但是这个问题只出现在IE浏览器,chrome和Firefox等其他浏览器正常. 原因 Js 代码里面,看着也没有什么耗时的操作和后台异步调用.没办法,只能从响应事件的最开始一步一步调查.经过一番调试之后,问题定位在setTimeout 函数.当把setTimeout 里面执行的函数去掉之后,立马就不会出现这种情况.查看setTimeout 里面调用的函数,发现

火狐浏览器打开带flash的页面浏览器假死,崩溃

火狐浏览器打开带flash的页面浏览器假死,崩溃 今天打开页面时运行了flash插件,然后发现整个浏览器没有反应,浏览器未出现无响应提示,并且电脑内存,CPU都处于正常范围,在网上看了半天,大致原因是因为flash的安全沙箱技术,导致浏览器崩溃 解决方案 1.点击 菜单 中的 附加组件. 然后左侧选择 插件 . 然后在右侧 找到 Shockwave Flash.点击选项. 取消勾选 拦截骚扰与危险性的flash内容. 重启火狐即可. 2,手动更改,百度上的教程都是这种方法,效果与上面的方法一样,

C# 解决窗体假死的状态

异步调用是CLR为开发者提供的一种重要的编程手段,它也是构建高性能.可伸缩应用程序的关键.在多核CPU越来越普及的今天,异步编程允许使用非常少的线程执行很多操作.我们通常使用异步完成许多计算型.IO型的复杂.耗时操作,去取得我们的应用程序运行所需要的一部分数据.在取得这些数据后,我们需要将它们绑定在UI中呈现.当数据量偏大时,我们会发现窗体变成了空白面板.此时如果用鼠标点击,窗体标题将会出现”失去响应”的字样,而实际上UI线程仍在工作着,这对用户来说是一种极度糟糕的体验.如果你希望了解其中的原因

win10下使用搜狗浏览器切换输入法导致浏览器假死解决方法

打开搜狗安装目录,例如E:\SogouExplorer\6.0.5.17804\wkdlls\PepperFlash  找到pepflashplayer.dll这个文件将其重命名即可.

jQuery Ajax同步参数导致浏览器假死怎么办

俗话说不作死就不会死,今天作死了一回,写了一个比较二逼的函数,遇到了同步Ajax引起的UI线程阻塞问题,在此记录一下. 事情起因是这样的,因为页面上有多个相似的异步请求动作,本着提高代码可重用性的原则,我封装了一个名为getData的函数,它接收不同参数,只负责获取数据,然后把数据return.基本的逻辑剥离出来是这样的:  代码如下 复制代码 function getData1(){        var result;        $.ajax({            url : 'p.

js ajax同步请求造成浏览器假死的问题

一.问题的起因 今天做一个需求遇到了这么个情况,就是用户个人中心有个功能,点击按钮,可以刷新用户当前的积分,这个肯定需要使用到ajax的同步请求了,当时喀喀喀三下五除二写玩了,大概代码如下: /** * 异步当前用户积分 by zgw 20161216 * @return {[type]} [description] */ function flushIntegralSum() { //点击按钮刷新前修改按钮的文案,已经去掉点击事情,防止多次点击 $("#flushbutton").r

(转)优化js脚本设计,防止浏览器假死

在Web开发的时候经常会遇到浏览器不响应事件进入假死状态,甚至弹出“脚本运行时间过长“的提示框,如果出现这种情况说明你的脚本已经失控了,必须进行优化. 为什么会出现这种情况呢,我们先来看一下浏览器的内核处理方式: 浏览器的内核是多线程的,它们在内核制控下相互配合以保持同步,一个浏览器至少实现三个常驻线程:javascript引擎线程,GUI渲染线程,浏览器事件触发线程. JavaScript引擎是基于事件驱动单线程执行的,JS引擎一直等待着任务队列中任务的到来然后加以处理,浏览器无论再什么时候都