关于extjs的语句执行先后

今天,在敲代码的时候,突然遇到了一个很费解的问题。先看看我的代码。一下是JS的[code=javascript]Ext.Msg.confirm('提示','确定修改吗?'... 今天,在敲代码的时候,突然遇到了一个很费解的问题。先看看我的代码。
一下是JS的[code=javascript]Ext.Msg.confirm('提示','确定修改吗?',function(btn){
if(btn=='yes'){
submitUser(tt);
Ext.getCmp("win").show();
Ext.getCmp('win-grid').store.url='json';
Ext.getCmp('win-grid').store.load();
Ext.getCmp("userwin").destroy();
}else{

} },this);[/code]
用途是更新数据,并在更新完数据之后更新gridpanel内的信息。
但是在执行的时候,我的后台尽然[code=sql]Hibernate:
select
userss0_.USERID as USERID1_,
userss0_.USERNAME as USERNAME1_,
userss0_.USERPWD as USERPWD1_
from
DB_TEST.USERSS userss0_

Hibernate: update
DB_TEST.USERSS
set
USERNAME=?,
USERPWD=?
where
USERID=4
[/code]
先运行了查询,然后才更新。
这是怎么回事?我明明是先执行行update的。请高手赐教啊!
展开
 我来答
KU丶雨
2013-03-19 · TA获得超过532个赞
知道小有建树答主
回答量:214
采纳率:100%
帮助的人:350万
展开全部
首先:按你的说法java后台确实是先执行了select操作然后执行update的。
原因:前端js代码是异步执行的,前端调用的循序和你最后执行sql的顺序并不完全取决于js的顺序。
例子:比如当前有这样一个js,1秒时,调用了访问后台的 update,2秒后,即3秒时调用load。
后台的java代码update函数和load函数,
update(){
//这里的代码执行了10秒

//执行update的sql语句
}
load(){
//这里的代码执行了2秒
//执行select的sql语句
}
由于后台执行代码时间的差异,实际执行sql语句的时间可能不与前端js顺序一致。

总结:这个是一个典型的js异步执行的问题。如果你想要向执行update在,再执行load的话,前端需要将load放在update的回调函数中。
yuanunique
2013-03-18 · TA获得超过159个赞
知道小有建树答主
回答量:291
采纳率:100%
帮助的人:157万
展开全部
查不出数据怎么更新,hibernate肯定会先查选啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式