比如说有a,b,c三个人同时操作同一个系统(tomcat容器),
当a向系统新增一条记录后,
怎样在b,c的页面上即时自动得到a新增的记录。
一般刷新一下b,c的页面就可得到a新增的记录,
问题是怎样才能a新增记录后,b,c页面马上自动刷新?
以前我们的做法是让b,c页面定时自动刷新,显然这种有事没事都去刷新页面,查数据库的做法很浪费资源。 或者用socket,又如何在tomcat启动时,启动指定的socket?browse客户端,又如何与socket通信?jsp中套入Applet,调用socketclient行得通么?
这里有哪位仁兄有类似的开发经历?有没人知道用什么方法或是哪里有相关资料!
当a向系统新增一条记录后,
怎样在b,c的页面上即时自动得到a新增的记录。
一般刷新一下b,c的页面就可得到a新增的记录,
问题是怎样才能a新增记录后,b,c页面马上自动刷新?
以前我们的做法是让b,c页面定时自动刷新,显然这种有事没事都去刷新页面,查数据库的做法很浪费资源。 或者用socket,又如何在tomcat启动时,启动指定的socket?browse客户端,又如何与socket通信?jsp中套入Applet,调用socketclient行得通么?
这里有哪位仁兄有类似的开发经历?有没人知道用什么方法或是哪里有相关资料!
解决方案 »
- 谁能告诉我GridBagLayout布局中怎么设置单元格大小啊??
- XML节点内容追加怎么实现?将<a>xx</a>变成<a>xxyyyyy</a>,不要setText('xx'+'yyyyy')?
- 问一个关于接口申明方法的问题。
- 关于添加jbutton 出现的问题 请高手帮帮忙
- Hibernate的映射配置怎么更快的记住它呢
- 找不到提问的地方,在这里提一个Applet的问题:在Applet中有一个有模式的Dialog,页面刷新后仍然还在
- 求教java種種的區別?入門問題,望大家指點.
- 对于 session 绑定事件的使用
- 怎么使 RMI 服务器同时绑定 几个对象?
- StringTokenizer无法分割换行符是怎么回事
- 关于多肽的问题
- java 范形做为方法参数的应用中不能理解的问题,希望有高人指点迷津,谢谢```
有解决的办法,比如通过ActiveX控件、Applet等和服务器建立长连接,但是要求用户安装ActiveX控件(并且浏览器限制在Windows下的IE)或者java运行时。
还有准“实时”的办法,就是用客户端脚本,通过XmlHttpRequest这种东西来定时发送请求,比如每秒一次,来查询页面数据的版本更新。这样对客户端浏览器的限制较少,但是有较大的延时;至于频繁的发送请求带来的服务器压力和客户端处理器负载,问题倒不是太大。
所以比较好的方案是,在服务器端写入数据的时候,维护一个缓存,然后其他页面通过脚本的请求来获得新版本。
刷新后通知客户端的浏览器
AJAX可以做到页面的局部刷新,异步交互!很强的!
可以找本AJAX的书看看。
不知道高手们怎么看
能贴代码出来么?实在没有头绪!
-----------------------------------
to:weihthchk(Spectrum) 或 Rachael1001(野谷子)
如果用applet的话
跟服务器的的socket怎么建立?
applet怎么访问页面?
跟服务器的的socket怎么建立?
applet怎么访问页面?----------------------------------------------------------------------------------
高分求教:如何实时刷新
----------------------------------------------------------------------------------比如说有a,b,c三个人同时操作同一个系统(tomcat容器),
当a向系统新增一条记录后,
怎样在b,c的页面上即时自动得到a新增的记录。
一般刷新一下b,c的页面就可得到a新增的记录,
问题是怎样才能a新增记录后,b,c页面马上自动刷新?
以前我们的做法是让b,c页面定时自动刷新,显然这种有事没事都去刷新页面,查数据库的做法很浪费资源。 或者用socket,又如何在tomcat启动时,启动指定的socket?browse客户端,又如何与socket通信?jsp中套入Applet,调用socketclient行得通么?
这里有哪位仁兄有类似的开发经历?有没人知道用什么方法或是哪里有相关资料!
----------------------------------------------------------------------------------在BS结构的应用中,相对“实时”的刷新原则上说是不可能的。
有解决的办法,比如通过ActiveX控件、Applet等和服务器建立长连接,但是要求用户安装ActiveX控件(并且浏览器限制在Windows下的IE)或者java运行时。
还有准“实时”的办法,就是用客户端脚本,通过XmlHttpRequest这种东西来定时发送请求,比如每秒一次,来查询页面数据的版本更新。这样对客户端浏览器的限制较少,但是有较大的延时;至于频繁的发送请求带来的服务器压力和客户端处理器负载,问题倒不是太大。
所以比较好的方案是,在服务器端写入数据的时候,维护一个缓存,然后其他页面通过脚本的请求来获得新版本。
数据库建立扩张存储过程(里面是用socket发数据),数据库有一张表,用来记录登陆的用户的ip地址. 另外,在要刷新的表上建立触发器(主要是更新和插入的),表中有数据变化时,调用扩展存储过程,立即给客户端发socket消息,消息包中封装要刷新数据的主键.客户短收到消息后只刷新变化部分的记录(不要用敏感控件). 如果并发和访问量较大,服务器也会死去(感觉效率也上不去)
在网上找找AjaxAnyWhere的资料,这个应该很多.
它事通过定时刷新界面做到的。而不是服务器的工作。
或者 写个listener A对数据操作时候 BC刷新(不过好象难点)
ajax可以实现
本人用它编写了类似QQ的web实时消息系统
网上有丰富的例子
你就不回来看了?哥们B/S一样做
也不用AJAX
你搜索“任务调度”
有一个框架就是解决这个问题的
我也正在弄