我是用AJAX执行先插入数据,后执行查询,但查询的结果有时候不是更新后的数据,再点击一下保存才会出来。请高手指教

解决方案 »

  1.   

    这个要看你的程序是如何写的了。
    对于MYSQL来说,只要你INSERT了数据并提交了。之后的查询就有了。
      

  2.   

    你在MYSQL的命令行里执行INSERT ,然后再执行SELECT * 命令,看结果是否和你预测的一样。在MYSQL里,除非你的AUTOCOMMIT设置为OFF时,那么才需要显式提交。mysql> show variables like '%autocommit%';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | autocommit    | ON    |
    +---------------+-------+
    1 row in set (0.00 sec)mysql>
      

  3.   

    如果是同一会话,应该不会有些问题。
    ajax中有大量的异步操作,怀疑是因不同一mysql会话造成。
      

  4.   

    ajax是异步的操作,这样会给用户无闪动的体验。但在开发的时候需要注意的是ajax造成延时更新,也就是你所的这种问题,我建议你在程序里面添加日志功能,在Insert成功会写在日志里面,这样你就可以看出是不是真正的insert进去了。如果没有及时的insert或update那么就要调试一下你的程序或者优化一下代码。
    尽量不要点击提交后就马上给用户返回结果,最好做一个进度条的等待提示,比如:正在请求,请稍候...
    ajax的特点就是在这里,并不是点击提交后马上返回结果,客户端与服务器的交互配置一定要做好,也就是程序要优化好,像移动这样的企业也没有做到点击以后马上返回结果,也是在用进度条来提示用户的。
    你出现这样的问题并不是数据库的说造成的原因。