日期:2014-05-16  浏览次数:20683 次

关于EXT的某些语句执行的先后顺序,求前辈们帮帮忙
  今天,在敲代码的时候,突然遇到了一个很费解的问题。
先看看我的代码。
一下是JS的
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);

用途是更新数据,并在更新完数据之后更新gridpanel内的信息。
但是在执行的时候,我的后台尽然
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

先运行了查询,然后才更新。
这是怎么回事?我明明是先执行行update的。请高手赐教啊!

------解决方案--------------------
你的修改时ajax异步提交的吧,异步提交的就不好控制了,你的更新操作和查询操作2个请求时间差就是1,2ms,所以哪个请求先到达服务器谁都说不定,取决于网络

将查询操作放到更新操作成功执行的回调里面执行
------解决方案--------------------
更新是应该是异步调用的,你将查询的方法放在更新的回调函数中