Jem*_*rld 13 javascript ajax extjs function
如何在EXT JS中创建同步ajax请求?
例如,给定此代码:
test1();
ajaxRequest(); //Ajax Request
test2();
Run Code Online (Sandbox Code Playgroud)
执行test2函数时甚至没有完成执行ajaxRequest(),有一个Ext.Ajax.request调用.
如何在text2()执行ajaxRequest()函数后才能执行?
我知道这样做的一种方法是test2在回调中调用函数,但是我有一些依赖项和许多代码必须在ajax请求之后以同步方式执行.能帮我解决一下这个问题吗?
Red*_*der 27
我需要类似的东西和看的源代码后Ext.Ajax.request()和Ext.data.Connection,我发现他们检查一个async属性上request()的方法,所以,它实际上是可以进行同步请求,就像这样:
var response = Ext.Ajax.request({
async: false,
url: 'service/url'
});
var items = Ext.decode(response.responseText);
Run Code Online (Sandbox Code Playgroud)
看来这个async属性没有记录,所以......当然......请注意,它可能会在将来的版本中发生变化.
Egy*_*din 11
在Extjs.Ajax每个AJAX调用中,会产生三种类型的回调函数之一:
success 如果AJAX调用成功创建并获得响应,则运行 failure 如果AJAX调用无法获得响应,则运行 callback 在AJAX调用获得响应后运行如果要执行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();
}
});
Run Code Online (Sandbox Code Playgroud)
注意:此方法不适用于ExtJS 3.