Extjs的异步和同步问题
嗨,看到你给我的百度提问上的Ext.LoadMask的回答,十分的满意,求教一个比较深入的问题,麻烦您有空的时候帮助看一下,是这样的:我定义了一个连接,之后再发起请求到后...
嗨,看到你给我的百度提问上的Ext.LoadMask的回答,十分的满意,求教一个比较深入的问题,麻烦您有空的时候帮助看一下,是这样的:我定义了一个连接,之后再发起请求到后台去直接获取一项统计数据
conn = Ext.create('Ext.data.Connection',{ //定义连接
.....
url : 'get_statistics.php'
});
conn.request ({
//发起请求去获取数据
success: ....
获取数据之后我期望的后续操作是,能够将获取到的统计数据通过赋值给某个表单的单元格
set_value(0,"online_total",Register_0);
这些写了之后我以为程序能够按照定义的逻辑顺序进行
可是实际情况却让大跌眼镜,跟踪代码显示:conn.request
是一个异步请求,也就是说conn.request 请求发生之后程序并不是在哪里等待后台的统计结果出现再执行下面的赋值操作,而是不等待结果就直接执行了后面的赋值语句,但是赋值语句当中用到的Register_0等参数是需要从conn.request 请求结果当中获得了,提前赋值自然表单单元格的结果为空(因为这个时候还没有取到响应的统计数据)
分析之后发现这是Extjs异步请求的并行机制惹的祸,我希望在这一步操作上能够进行顺序的同步的操作应该如何做到? 展开
conn = Ext.create('Ext.data.Connection',{ //定义连接
.....
url : 'get_statistics.php'
});
conn.request ({
//发起请求去获取数据
success: ....
获取数据之后我期望的后续操作是,能够将获取到的统计数据通过赋值给某个表单的单元格
set_value(0,"online_total",Register_0);
这些写了之后我以为程序能够按照定义的逻辑顺序进行
可是实际情况却让大跌眼镜,跟踪代码显示:conn.request
是一个异步请求,也就是说conn.request 请求发生之后程序并不是在哪里等待后台的统计结果出现再执行下面的赋值操作,而是不等待结果就直接执行了后面的赋值语句,但是赋值语句当中用到的Register_0等参数是需要从conn.request 请求结果当中获得了,提前赋值自然表单单元格的结果为空(因为这个时候还没有取到响应的统计数据)
分析之后发现这是Extjs异步请求的并行机制惹的祸,我希望在这一步操作上能够进行顺序的同步的操作应该如何做到? 展开
1个回答
展开全部
两种办法
一种request加一个参数async:false,设置ajax请求为同步;
另外一种是将后面的赋值语句放到success函数当中。
一种request加一个参数async:false,设置ajax请求为同步;
另外一种是将后面的赋值语句放到success函数当中。
更多追问追答
追问
后面一种我理解,不过前面一种:
"request加一个参数async:false,设置ajax请求为同步;"
API是否支持,就是说您以前试过这种操作设置吗?
是否可以直接添加这个参数?
需要不需要引入附加的js文件或者是安装完其它插件才可以使用?
追答
不需要,这是extjs支持的一个参数设置,你看看api。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询