[英]EXT Js Synchronous ajax request
如何在EXT JS中创建同步ajax请求?
例如,给定此代码:
test1();
ajaxRequest(); //Ajax Request
test2();
执行test2函数时甚至没有完成执行带有Ext.Ajax.request
调用的ajaxRequest()
。
如何在执行ajaxRequest()
函数后ajaxRequest()
执行text2()
?
我知道这样做的一种方法是在回调中调用test2
函数,但是我有一些依赖项和许多代码必须在ajax请求之后以同步方式执行。 能帮我解决一下这个问题吗?
我需要类似的东西,在查看Ext.Ajax.request()
和Ext.data.Connection
的源代码之后,我发现他们在request()
方法上检查了async
属性,所以,它实际上可以做一个同步请求,如下所示:
var response = Ext.Ajax.request({
async: false,
url: 'service/url'
});
var items = Ext.decode(response.responseText);
看来这个async
属性没有记录,所以......当然......请注意,它可能会在将来的版本中发生变化。
在Extjs.Ajax
每个AJAX调用都会产生三种类型的回调函数之一:
success
创建AJAX调用并获得响应时运行的成功 failure
运行,如果AJAX调用未能得到回应 callback
如果要执行test2();
在您的ajax请求完成后,
然后将test2
函数放在success
, failure
或callback
函数中; 无论你选择哪一个都取决于你......
有关success
或failure
功能的更多信息,请点击此处 。
test1();
Ext.Ajax.request({
url: 'page.php',
params: {
id: 1
},
// scope: this, // you can set the scope too
callback: function(opt,success,respon){
test2();
}
});
注意:此方法不适用于ExtJS 3。
ExtJS不提供开箱即用的同步请求功能。 事实上,他们强烈反对使用它们。
您可能会发现以下讨论很有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.