浏览 4239 次
锁定老帖子 主题:异步模式下的Ajax的同步问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-03-27
最后修改:2010-03-27
/** * 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同步的函数。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-03-31
其实这个和异步同步问题无关。
你只是成功之后调用某个方法。其实还是异步的ajax,而且写得复杂了。 Ajax本身是有有同步的调用方法的,可以直接用。 另外你的 if(!ajaxCompleteFlagCallback()){ 多个个括号 |
|
返回顶楼 | |
发表时间:2010-03-31
Relucent 写道 其实这个和异步同步问题无关。
你只是成功之后调用某个方法。其实还是异步的ajax,而且写得复杂了。 Ajax本身是有有同步的调用方法的,可以直接用。 另外你的 if(!ajaxCompleteFlagCallback()){ 多个个括号 你注意看下我前面说的话,如果你用jsonp来跨域调用的话是不能设置成同步模式的(jquery的ajax函数,不知道是为什么,如果有人知道希望能告知一下)。 我的标题也是写的《异步模式下的ajax的同步问题》。 另外,你说我多个括号的地方你可以仔细看看,是没有多的。 不过管怎么说,谢谢关注这个帖子:) |
|
返回顶楼 | |