现有两个用户,如其中一个用户对数据库进行了操作,在另一用户界面右下角升起提示框,某某对某条数据进行了修改。求思路,新手程序员不知道怎么做。java

解决方案 »

  1.   


    你把A用户对数据库的修改休息保存在一个位置
    然后B用户可以定期调用AJAX方法去取数据修改信息
    如果取到了
    你在用个小方块提示吧
      

  2.   

    简单做法:在所有业务表中增加 修改人、修改时间,不论A或者B读取数据时都将修改时间hidden到页面上,然后A或者B修改,修改提交时,同时将修改时间提交到后台比对,如果发现修改时间与数据库不一致,则出失败提醒。这样无论谁先修改了数据,后修改者总是失败,除非重新加载数据再次修改。你希望在后者修改的时候就提醒,那么就要有个不停读取数据库修改时间与页面HIDDEN变量不同比较的过程。
      

  3.   

    这涉及到ajax轮询去获取信息,因为浏览器不会主动去服务器获取信息的,页面显示完,他就跟服务器没关系了。
      

  4.   

    怎么发送信息?
      如果是c/s架构的还好办,b/s的话,只有随时用ajax获取信息,每隔1秒请求一次服务器。
    怎么知道被修改了?
      用oracle的触发器,修改了,就在一张表里添加数据。
      如果不是oracle,你就我每次修改的时候在这个“USER”对象里记录他修改的信息,
      

  5.   

    使用监听器模式,定义一个监听器,所有人都注册,监听事件是:对数据库的操作。这样比ajax轮询要节省资源及更好的扩展。
      

  6.   

    html5 的 webScoket可以去了解一下
      

  7.   

    我现在用的方法就是和你说的差不多,就是ajax的返回值取不到,单位这头用的10年前的框架,要是struts2啥的就好了。
      

  8.   

    补充些细节实现:定义一个A接口即被观察者 含有3个方法 一个是添加观察者方法(方法参数为B接口) 一个是移除观察者方法 还有一个是进行数据库操作的方法 定义一个B接口即观察者 含有1个方法 是进行自我提醒的 然后A B 各有一个实现类 A的实现类中负责将B接口添加进到一个含有B接口的list中 然后在数据库中操作的时候便遍历list调用B接口的自我提醒的方法实现对B的提醒。