OA短消息提醒功能功能怎么实现
在我的OA系统中,当用户A和用户B同时在线的时候,A向B发送短消息,系统中通过什么机制来自动弹出提醒窗口。 问题点数:20、回复次数:24Top
1 楼Lukiya(路基亚)回复于 2006-03-13 15:45:37 得分 0
可以用ajax技术,每隔一段时间访问一个后台页面。那个后台页面里读数据库中消息表的纪录,如果是新的则返回true。
前台读到了就弹出窗口。Top
2 楼NeilChen123(木野狐)回复于 2006-03-13 15:46:41 得分 5
因为 B/S 的系统里很难实现推模型,所以其实还是用传统的做法。
具体来说,就是你的页面有一个部分去定时循环调用 xmlhttp 读取后台的数据(消息表),如果有新的,则用声音,文字等等提示用户即可。
定时的功能可以用 js 里面的 window.setInteval 函数。
或者你用一个隐藏的 iframe 定时 postback 也可以。
Top
3 楼NeilChen123(木野狐)回复于 2006-03-13 15:46:49 得分 5
因为 B/S 的系统里很难实现推模型,所以其实还是用传统的做法。
具体来说,就是你的页面有一个部分去定时循环调用 xmlhttp 读取后台的数据(消息表),如果有新的,则用声音,文字等等提示用户即可。
定时的功能可以用 js 里面的 window.setInteval 函数。
或者你用一个隐藏的 iframe 定时 postback 也可以。
Top
4 楼NeilChen123(木野狐)回复于 2006-03-13 15:47:26 得分 0
不好意思,刚才提示“回复失败”,多回了一遍。
Top
5 楼ycy589(ycy589)回复于 2006-03-13 15:49:27 得分 0
不错Top
6 楼Jane0621(jane)回复于 2006-03-13 16:29:29 得分 0
谢谢NeiChen123,能否给个例子。
Top
7 楼Jane0621(jane)回复于 2006-03-13 16:51:01 得分 0
做过这方面的提醒功能的老师们谈谈撒。Top
8 楼zyug(LovlyPuppy)回复于 2006-03-13 17:07:32 得分 0
JS代码写的比较烦,还有简单的
比如A给B发
假设OA系统上有一个页面是始终存在的,假设是a.aspx ,当然,它的宽度可能是0 长度也可能是0 ; 那我们不官
我们可以让a页面自刷新( 5秒刷新一次 ) ,放在一个IFrame中 ,那么a可以不断的刷新,读取数据库中是否有新的消息(也就是新记录) ,如果有记录,弹个窗口出来(那就是消息窗口, Response.Write (" <script>window.open ('Message.aspx')</script>" ) 就可以了) ,如果没有,刷刷刷
Top
9 楼Jane0621(jane)回复于 2006-03-13 17:32:33 得分 0
这样呀。那不是很增加服务器的负担。我如果在线的人很多,那服务器停的刷。有点受不起呀,还有没有更好的办法。
Top
10 楼zyug(LovlyPuppy)回复于 2006-03-13 17:34:51 得分 0
所以OA是有人数限制的..............
按人数来收费的....................
不是毫无关系
上面的ajax ,setInteval 都是这种机制的.....
因为b/s的模式限制Top
11 楼jxdyzwh(http://www.szsoftware.com.cn)回复于 2006-03-13 17:35:22 得分 0
POUP来实现Top
12 楼jxdyzwh(http://www.szsoftware.com.cn)回复于 2006-03-13 17:37:17 得分 0
如果需要的话楼主可以给我来个邮件jxdyzwh@163.com,我发个例子给你Top
13 楼zyug(LovlyPuppy)回复于 2006-03-13 17:39:01 得分 0
在你没有请求的时候,Sever不会发送给浏览器任何东西........
(要不然你麻烦了,保证你一开机,满屏幕都是广告窗口.....)
在你收到消息的时候,你一定是向Sever请求了什么......Top
14 楼Jane0621(jane)回复于 2006-03-13 18:45:42 得分 0
还有没有更好的办法。Top
15 楼califord(远方)回复于 2006-03-13 18:55:25 得分 0
直接给一个例子看看Top
16 楼blackhero(黑侠客)回复于 2006-03-13 19:14:00 得分 0
RTCTop
17 楼Jane0621(jane)回复于 2006-03-14 09:50:15 得分 0
大虾们,请说的详细写,我是个刚入门的。我只想知道,在系统中用什么机制知道用户A给用户B发送了邮件或消息什么的,系统中怎么去检测数据库中用户B有新的消息,然后去触发客户端弹出提醒窗口。Top
18 楼denghan(很久没来ASP版了)回复于 2006-03-14 09:56:46 得分 0
可以这样:在服务器端建一个消息池机制,只有一个线程在不停的扫描数据库把新消息加入池中。然后用一个客户端都从这个池中取消息。
javabean+xmlhttp就可搞定Top
19 楼jxdyzwh(http://www.szsoftware.com.cn)回复于 2006-03-14 10:02:47 得分 0
兄弟们别急,给我来邮件的都发了个例子,呵呵,都能满足各位的需求,好东西,大家一起分享!Top
20 楼Jane0621(jane)回复于 2006-03-14 10:19:30 得分 0
阳光男孩,我给你去了邮件,怎么还不回呀,我急了。在说一下我的邮箱:daijane@126.com,记住了。Top
21 楼lubosun(大白菜)回复于 2006-03-14 10:36:52 得分 0
markTop
22 楼jxdyzwh(http://www.szsoftware.com.cn)回复于 2006-03-14 10:51:01 得分 8
兄弟们,我给你们都发了,呵呵,对了,实现poup的功能得有ie5.5版本以上才有用,楼主可以结贴了Top
23 楼ycted(长城万里今犹在,不见当年秦始皇!)回复于 2006-03-14 10:55:46 得分 2
OA一般都有公用的head,把判断写在那里面不就行了。当他每打开一个页面都会做判断。Top
24 楼Jane0621(jane)回复于 2006-03-14 11:28:19 得分 0
接帖了Top




