Ext.Ajax.request同步请求
导读:
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
Ext.Ajax.request同步请求的更多相关文章
- 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的小小区别
原文地址:http://blog.csdn.net/hongleidy5000/article/details/7329325 if (!formDetail.getForm().isValid()) ...
- Ext.Ajax.request
function create(){ var itstate = $("#myselect").val(); Ext.Ajax.request({ url: '/servlet/A ...
- Ext.Ajax.request方法 参数
json数据服务器回传的方法. 在api总指出回传的格式{success;true,data:{clientName: "Fred. Olsen Lines", portOfL ...
- Ext.Ajax.request用法
向一个远程服务器发送HTTP请求. Ajax服务器请求是异步的, 所以对响应数据的处理需要使用回调函数来实现. var params = {}; var ret; Ext.Ajax.request({ ...
- EXTJS 资料 Ext.Ajax.request 获取返回数据
下面是一个登陆页面调用的EXTJS login function,通过 url: '/UI/HttpHandlerData/Login/Login.ashx',获取返回登陆账户和密码! Ext.onR ...
随机推荐
- Makefile详解--隐含规则
Makefile详解--隐含规则(转) Makefile系列文章,这里有个前辈连续洗了一个系列来介绍,共有26篇博客文章. http://www.cppblog.com/ivenher/archive ...
- C按格式输出数字
看到有人问如何输出如下格式的字符: //1 6 10 13 15 //2 7 11 14 //3 8 12 //4 9 //5 于是写了一个,以后方便查看. main() { /* rows i j ...
- 配置SSH免密码验证
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/ShiJiaqi. http://www.cnblogs.com/shijiaqi1066/p/5183803. ...
- ACCESS表与CSV文件相互导入、导出的SQL语句
一.将ACCESS表导出为CSV文件:Select * INTO [TEXT;FMT=CSV;DELIMITED;HDR=YES;DATABASE=E:\temp\].test.csv FROM Sh ...
- .Net程序员学习Linux(一)
本次知识点:Linux系统的多终端切换,linux下的用户,linux远程访问工具使用,linux下重要的目录,命令的组成,通配符,linux的路径问题,文件操作的综合运用 为什么学习linux? 1 ...
- SqlSugar框架T4模板的使用
一.T4模板说明 1.T4模板是用来生成Model层实体类的 2.文件后缀为.tt 3.需要修改配置主要有:引用的SqlSugar.dll的位置.生成实体类的位置及生成实体类的命名空间 4.T4模板生 ...
- SHELL:Find Memory Usage In Linux (统计每个程序内存使用情况)
转载一个shell统计linux系统中每个程序的内存使用情况,因为内存结构非常复杂,不一定100%精确,此shell可以在Ghub上下载. [root@db231 ~]# ./memstat.sh P ...
- sql server抓取表结构的语句
sql server 2008抓取方法: --------------------------------------- SELECT 表名 = Case When A.colorder ...
- eclipse总是自动跳到ThreadPoolExecutor.java
解决方法:在eclipse中选择Window->Preference->Java->Debug, 将“Suspend execution on uncaught exceptions ...
- iOS开发内购图文教程
2015年最全的内购图文教程,首先是填各种资料,最后是代码,废话不多说,直接上图 ======================第一部分协议=============== 第一步.png 第二步.jpg ...