导读:

ajax分为2种,一种是同步,一种是异步

同步:代码执行完了之后才执行后面的代码

异步:代码刚执行,后面的代码就马上接着执行了,不管前面的代码是否执行完

异步的情况下,要获得返回信息,就需要在异步执行完之后写代码,也就是在success里面写代码,或者success里面调用其他的函数。

在Ext3.0以上的版本里面 ,Ext.Ajax.request是异步的,到Ext 4.0以后才支持同步请求的属性(没试过)

---------------------------------------------------------------------------------------------------------------------------------------------------------------

本人今天遇到的一个问题,其中一个项目中用到Ext3.4里面的Ext.Ajax.request请求,如下所示

Ext.Ajax.request({

url:'tempSaveRuleConfig.action',

method:'POST',

success:function(result,request)

{

tcProductDetailStore.modified = [];

tcProductDetailStore.reload();

var time = getServerTime();

if (time == '')

{

Ext.MessageBox.alert('ERROR','从服务器获取时间失败。');

return;

}

var win = new Ext.Window({

modal:true,

layout:'fit',

width:,

height:,

closeAction:'close'

});

win.show();

}

其中的

getServerTime()方法也是同样的ajax请求,但在其中加了一个属性, async : false, 想通过同步的方式获取时间后再继续往下判断时间是否为空来往下执行。

经百度和实验,发现 Ext3.+不支持同步的方法,只支持异步请求,这样当还没返回时间time的值,程序就又往下执行判断时间为空从而报错提示:从服务器获取时间失败。

那么问题来了,怎么去解决呢?

经过网上大牛指点,可以编写一个同步的请求方法,具体如下所示:

function getServerTime()

{

var obj;

if (window.ActiveXObject) {

obj = new ActiveXObject('Microsoft.XMLHTTP');

} else if (window.XMLHttpRequest) {

obj = new XMLHttpRequest();

}

var url = 'takeDptcServerTime.action';

obj.open('POST', url, false);

obj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

obj.send(null);

var time = obj.responseText;

return time;

}

OK,经过测试,发现调用以上方法能实现同步的ajax请求。

具体可以参考这篇博文:

http://blog.csdn.net/linan0930/article/details/12556703

Extjs4.0以上版本 Ext.Ajax.request请求的返回问题

Ext.Ajax.request({ url: posturl, method: 'POST', params: { ClassName: 'XXXX', FuncName: 'XXXX', para ...

(ExtJs 3.4)Ext.Ajax.request的同步请求实现

ext3.0之前都是这样来提交:var responsea = Ext.lib.Ajax.getConnectionObject().conn;responsea.open("POST&qu ...

ext 的loadmask 与ajax的同步请求水火不容

由于ajax 的同步请求会有一段请求时间.有的短.有的长,对于短的我们还是能接受的,不过长的话就必须处理一下了, 就比如处于ext 4.2.0的框架下,需要一个遮掩的样式,框架是有自带的,loadma ...

ExtJS Ext.Ajax.request最好设为同步

ExtJS 中Ext.Ajax.request最好设为同步,即async: false,因为如果Ajax后面需要用到Ajax更新的数据的话,设置同步,后面才能用到最新的数据. function Get ...

[转] form.getForm().submit的用法及Ext.Ajax.request的小小区别

ext.ajax.request如何同步调用,Ext.Ajax.request同步请求相关推荐

  1. Ajax系列之异步调用导致的不同步问题

    业务场景:点击一个按钮的时候保存数据,同时打开一个弹窗带出保存的数据 基于这样的业务场景,最近遇到一个问题,是在ie11才发现的,点击按钮时候,后台打断点加数据库查询都验证数据是保存正确的,不过已经保 ...

  2. mqtt 发送消息过多_阿里云MQTT服务端注解式消息处理分发与同步调用实践小结

    一.前言 前段时间公司预研了设备app端与服务端的交互方案,出于多方面考量最终选用了阿里云的微服务队列MQTT方案,基于此方案,本人主要实践有: 1. 封装了RocketMQ实现MQTT订阅与发布的实 ...

  3. Ext Ajax:如何调用Ext.Ajax.request方法和使用Java Servlet进行处理

    來源:http://www.cnzzad.com/tut/52959.html 使用Ext.Ajax.request提交数据的代码如下(这段代码在一个Js文件中,为避免中文乱码,js文件必须是utf- ...

  4. java+ext.ajax,[转载]Ext Ajax:怎么调用Ext.Ajax.request方法和使用Java Servlet进行处理

    当前位置:我的异常网» Ajax » [转载]Ext Ajax:怎么调用Ext.Ajax.request方法和使 [转载]Ext Ajax:怎么调用Ext.Ajax.request方法和使用Java ...

  5. ajax同步的使用创场景,Ajax的同步调用场景——使用同步Ajax在 onunload 事件时通知服务器...

    在一种场景下,server端维护了浏览器客户端的状态信息,当浏览器关闭时需要立刻通知server用户已经离开了,server端好清 理状态.这种情况的典型案例就是:浏览器客户端的即时通信,即web I ...

  6. ext ext.ajax_在Ajax应用程序中使用Ext.Direct

    ext ext.ajax Ajax的概念使Web应用程序可以从缓慢,无响应和违反直觉的方式发展为类似于桌面应用程序的行为,提供即时反馈,消除页面刷新的需求并促进更好的用户体验. Ajax的问题​​在于 ...

  7. java 调用ajax_JAVA AJAX调用

    $.ajax({ type: "POST", url: 项目地址+"/XX/XX/请求.do", data: 'Id='+IdObj.value, succes ...

  8. 同步请求和ajax请求,ajax 同步请求和异步请求的差异分析

    ajax 同步请求和异步请求的差异分析 发布于 2016-12-27 08:14:26 | 53 次阅读 | 评论: 0 | 来源: 网友投递 JavaScript客户端脚本语言Javascript ...

  9. jQuery Ajax调用后如何管理重定向请求

    我使用$.post()使用Ajax调用servlet,然后使用生成的HTML片段替换用户当前页面中的div元素. 但是,如果会话超时,服务器将发送重定向指令以将用户发送到登录页面. 在这种情况下,jQ ...

最新文章

  1. 最短路径(floyed)
  2. js 字符串减去字符串_js关于字符串、条件语句和自加和自减
  3. Linux 简单打印日志(二)
  4. kaggle比赛数据_表格数据二进制分类:来自5个Kaggle比赛的所有技巧和窍门
  5. JAVA进阶级开发之(Array工具类)
  6. vant 项目_vueCli4+vant+router+vuex+移动端适配
  7. mysql志新计划,在使用Perl DBI迭代结果集时更新MySQL表是否安全?
  8. 今天闲着没事弄个几个表情包
  9. 苹果芯片团队又遭挖人,重量级芯片设计师被微软挖走
  10. Bootstrap3.0学习第十二轮(导航、标签、面包屑导航)
  11. 百练(九~十二)题解
  12. LANMP架构----------------------mysql(2)
  13. MATLAB 图像处理基础(2)
  14. 台式计算机开机密码设置,设置台式电脑的开机锁屏密码的方法步骤
  15. .Net(C#)腾讯信鸽推送
  16. 利用手机距离感应器来切换扬声器和听筒播放
  17. 计算机科学与技术本科知识体系
  18. 最难忘的一节计算机课,我最难忘的一节课
  19. MT6323详细芯片资料分享 MT6323设计原理图须知
  20. Leetcode每日一题:使括号有效的最少添加(括号匹配)

热门文章

  1. Spark IMF传奇行动第20课:top N总结
  2. Spring中的拦截器的作用
  3. css3 手机信号,css3实现wifi信号逐渐增强效果
  4. oracle11 share pool,Oracle Shared pool 详解
  5. 事务的4种隔离级别(Isolation Level)分别是什么?
  6. python中json用法loads和dumps区别_pythonjsondumps与loads
  7. PV、UV、IP之间的区别与联系pv uv vv cv 的区别 不是记不住意思,是真心记不清简写。。。。
  8. 拍照翻译 轻松一拍 轻松翻译 云脉慧眼
  9. 用Scrapy抓取游民星空每周壁纸精选的图片
  10. Redis——使用Jedis操作stream