虽然Ajax可以设置为同步或者异步模式,但是在某些情况下(比如用jsonp实现ajax跨域调用)只能让Ajax工作在异步模式下。但是很多时候异步模式会带来一些编程上的麻烦,所以我写了个用于同步异步ajax的函数,在这里和大家分享下希望对有相同需求的朋友有所帮助,也请大家提下建议和意见。
/**
* Ajax同步函数
* @param ajaxCompleteFlagCallback 用于判断Ajax调用是否完成的回调函数
* @param synchronizedCallback 和ajax同步的函数
* @return
*/
function ajaxSynchronizer(ajaxCompleteFlagCallback,synchronizedCallback){
var intervalId=null;
function waitAjaxCompleteFlag(){
if(ajaxCompleteFlagCallback()){
synchronizedCallback();
clearInterval(intervalId);
intervalId=null;
}
}
if(!ajaxCompleteFlagCallback()){
intervalId=setInterval(waitAjaxCompleteFlag,150);
}else{
synchronizedCallback();
}
}
函数的参数是两个回调函数,一个是用来判断ajax是否完成(可以通过在ajax的回调函数中设置一个完成标志来实现),一个是需要和ajax同步的函数。
分享到:
相关推荐
而在C++开发中,同步模式应该是主流,如果一定要使用异步模式加回调,可以参考Using IXMLHTTPRequest onreadystatechange from C++一文。 下面是采用异步模式获取远程主机上RSS文件的代码,关键的地方是设置一个回调...
代码如下://同步传输模式 function RequestByGet(nProducttemp,nCountrytemp) { var xmlhttp if (window.XMLHttpRequest) { //isIE = false; xmlhttp = new XMLHttpRequest(); } else if (window....
举个例子:普通B/S模式(同步) AJAX技术(异步) * 同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事 * 异步: 请求通过事件触发->服务器处理(这时浏览器仍然可以作其他事情)->处理...
举个例子:普通B/S模式(同步) AJAX技术(异步) * 同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事 * 异步: 请求通过事件触发->服务器处理(这时浏览器仍然可以作其他事情)->处理...
1、同步交互模式,客户端提交请求,等待,在响应回到客户端前,客户端无法进行其他操作 2、异步交互模型,客户端将请求提交给Ajax引擎,客户端可以继续操作,由Ajax引擎来完成与服务武器端通信,当响应回来后,Ajax...
这是一种十分不连贯的运行模式,常常需要长时间按的等待以及整个页面的刷新,即通常所说的”白屏”现象,而且是整个页面的刷新,这就增加了用户等待时间,数据重复传递也浪费了大量的资源和网络带宽,而Ajax采用的是异步...
在进行网络编程时,常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞...例如:ajax请求(异步): 事件触发->服务器处理(浏览器可做其他的)->处理完毕,ajax回调函数处理结果 阻塞/非阻塞主要针对S端: 阻塞(等待)
Javascript语言将任务的执行模式分成两种:同步(Synchronous)和异步(Asynchronous)."异步模式"非常重要。在浏览器端,耗时很长的操作都应该异步执行,避免浏览器失去响应,最好的例子就是Ajax操作。在服务器端,...
同时我们在MVC系列中讲过文件上传,本文结合MVC+WebAPi来进行文件的同步或者异步上传,顺便回顾下css和js,MVC作为客户端,而WebAPi利用不依赖于IIS的selfhost模式作为服务端来接收客户端的文件且其过程用Ajax来实现...
为了解决这个问题,javascript语言将任务分为两种模式: 同步:当我们打开网站,网页的页面骨架渲染和页面元素渲染,就是一大推同步任务。 异步:我们在浏览新闻时,加载图片或音乐之类占用资源大且耗时久的任务...
这种转变避免了繁琐的部署工作,同时也体现了瘦客户的开发理念,但同步交互方式带来客户端响应速度慢的问题始终困扰着最终用户。基于Ajax(Asynchronous JavaScript. and XML)的Web 2.0技术改变原有的同步交互为异步...
在Web信息系统的开发过程中,将Web多线程技术和Ajax技术有机结合起来,提出了一种异步编程模式,有效地解决同步编程模式会出现开销大且费时的程序段阻塞当前进程,以及在客户端无法实时读取服务器端进程状态信息的问题。...
在异步模式下,结果数据在开始调用之后的一段时间之后才可以被异步访问获取到.DWR允许WEB开发人员传递一个回调函数,来异步处理Java函数调用过程. 另处 .dwr还是文件的一种格式: 比如以Dreamweaver软件里有查找和替换...
//2、异步同步模式的属性设定 //3、数据加载自动超时设置 //4、***数据加载事件的添加,通过事件可以进行服务器数据的实时处理 //5、增加回调函数中用户自定义参数this.e //6、增加ajax反复提交控制,只需将ajax对象...
树状菜单是Web应用系统中常见的数据结构,但由于传统的Web应用采用同步交互模式,使对菜单的操作总是伴随着页面刷新,不仅浪费资源,而且降低系统性能,针对这个问题,通过分析Ajax技术特点,设计并实现了一种高效的...
下面是Jquery中AJAX参数详细列表: 参数名 类型 描述 url String ...(默认: true) 默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器
在AJAX之前,Web开发中采用的是同步交互方式,如JSP,但其后果是客户端必须一直等待服务器的响应,以至于冻结页面,有时用户不得不离开访问页面。在此研究了基于AJAX异步刷新而提供与服务器异步通信的能力,从而使...
- 解决更改排序方式后 ——对应右键菜单不同步问题。 - 优化右键更改列表状态,同步保存配置到服务端。 - 文件浏览器打开(a点击新窗口跳转,a不支持click,用子元素冒泡来实现点击) - 优化配置文件存储方案。直接由...
修正 分站模式下积分商城、帮助中心url问题;修正 手机注册帐号时提示已被注册;修正 触屏绑定二级域名后pc浏览器无法访问触屏版问题(研究院指导);修正 触屏职位列表和pc职位列表搜索时加参数后结果不一致问题;...