此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
楼主【happygen】截止到2008-07-14 11:28:21的历史汇总数据(不包括此帖):
发帖的总数量:0 发帖的总分数:0 每贴平均分数:0
回帖的总数量:1 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:0 结贴的总分数:0
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:---------------------结分的百分比:---------------------
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
楼主【happygen】截止到2008-07-14 11:28:21的历史汇总数据(不包括此帖):
发帖的总数量:0 发帖的总分数:0 每贴平均分数:0
回帖的总数量:1 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:0 结贴的总分数:0
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:---------------------结分的百分比:---------------------
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
解决方案 »
- java.lang.NullPointerException
- jsp页面里input一个text,能隐藏这个text的value吗?
- http://localhost/...只能打开部分文件是怎么回事呢?
- 验证上传图片大小JS为什么没正确执行
- 我想学网络编程,该从哪方面下手好?
- Tomcat昨天可以正常启动网页,今天却不能!
- hibernate 级联查询排序问题
- 用java如何读取XML文件
- jsp中调用javabean是线程安全的吗,有那几个方面的问题
- 【JSP技术文档巨多!JSP巨多!速度巨快!人气巨旺!最值得收藏的好站。好就回复】
- 简单的选择问题
- 有没有可以通过代码实现动态更新“表字段”的方法呢?
要是你是想比如客户端在浏览这个网页时,你添加了一个新的图片,此时在客户端肯定无法看到你的变化,这个是很正常的,如果你想让客户端看到变化,就要客户端进行刷新重新加载页面,要不就是让这个页面定时刷新,不过不建议这样做,这样无形中增加了服务器的负担,我认为客户一般不会有这样的要求
应该有几种实现方式,高级点的,可以使用观察者模式.
实现地简单点,可以在后台更新完成后,重新调用listener.jsp,让它重新从数据库里面取,或者直接把添加的图片的信息传给listener.jsp.
我现在主要想知道的是 如何让服务器通知页面刷新 这种在B/S模式下该怎么实现 比如是否可以在页面编写一个listener让他来监听服务器发出的消息!
可能我提到的观察者模式,你已经看过7楼的实例了,它实际上也是一种触发并重新查询的过程,避免不了,你所要求的性能问题.
如果你的确是需要不进行重新的数据库查询,只能使用我前面提到的三种方法的最后一种.我刚才重新理解了一下你的意思,听你的意思是,你需要在服务器端做出更新后,触发客户端的改变.
也就是说你需要的实现思路有两种:
一种是,从客户端对服务器端进行监听
另一种是,从服务器端对客户端进行触发在B/S架构中,第二种方法是不能实现的.只能采用第一种方式,下面给出详细实现技术和实现思路
实现技术:ajax+web session+观察者模式变种
实现思路:
1.后台的action对数据进行了更新,即完成了数据库的操作后,将该更新数据放到session中,这里可能还需要一个标志变量,标识出该更新数据是否已被客户端取用过;
2.客户端使用ajax技术,定时去后台查询session,取出未取过的数据,取后删除,或者标识置为已取.session有两种,一种是用户session,或者服务器共享缓存.
不论采用哪一种,都必须确定,当前更新的数据对哪些客户端是有用的,因此需要使用一个类似观察者模式的方式,维护哪些客户端需要哪些数据.可完成的功能:
1.将更新的任务交给了客户端;
2.更新不需要查询数据库;可能存在的问题:
1.对session的选择上,存在不确定性:建议使用服务器缓存,这样只需要存一份更新的数据;
2.对session的处理上,怎样使客户端更新未更新过的数据的处理过程,除了实现思路中采用的方式,可能使用一个时间戳的方式更佳;
3.需要维护的观察者列表,以及向观察者列表中填充更新过的数据的过程,需要占用很大CPU时间和内存;建议:
这种方式的实现复杂度较高,要求的技术能力较高,性能上也存在许多不确定性.所以不建议使用,建议采用传统的方式,重新查询数据库并刷新页面~