首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >EXT Js同步ajax请求

EXT Js同步ajax请求
EN

Stack Overflow用户
提问于 2011-06-04 05:58:31
回答 3查看 44.5K关注 0票数 14

如何在EXT JS中进行同步ajax请求?

例如,给定以下代码:

代码语言:javascript
运行
复制
test1();
ajaxRequest(); //Ajax Request
test2();

test2函数在没有完成ajaxRequest()的执行的情况下就被执行了,它有一个Ext.Ajax.request调用。

如何才能使text2()仅在ajaxRequest()函数执行后执行?

我知道一种方法是在回调中调用test2函数,但我有一些依赖项和大量代码,必须在ajax请求之后以同步方式执行。你能帮我找出最好的解决方案吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-06 13:45:12

我需要一些类似的东西,在查看了Ext.Ajax.request()Ext.data.Connection的源代码后,我发现它们在request()方法上检查async属性,因此,实际上可以发出一个同步请求,如下所示:

代码语言:javascript
运行
复制
var response = Ext.Ajax.request({
    async: false,
    url: 'service/url'
});
var items = Ext.decode(response.responseText);

这个async属性似乎没有文档记录,所以...当然..。请注意,它可能会在未来的版本中发生变化。

票数 30
EN

Stack Overflow用户

发布于 2011-06-04 11:40:29

Extjs.Ajax中,每次AJAX调用都会导致以下三种回调函数之一:

成功创建AJAX调用时运行的

  • success,并获取响应
  • failure,该响应
  • callback在AJAX调用获取响应

后运行

如果希望在ajax请求完成后执行test2();

然后将您的test2函数放在successfailurecallback函数中;无论您选择哪一个函数,都取决于您……

有关successfailure函数的更多信息,请访问here

代码语言:javascript
运行
复制
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。

票数 12
EN

Stack Overflow用户

发布于 2011-06-04 06:04:02

ExtJS不提供开箱即用的同步请求功能。事实上,他们强烈反对使用它们。

您可能会发现有关following的讨论很有帮助。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6233071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档