即时信息提示功能的实现(高手)

时间:2022-10-21 14:32:08
最近在做一个审批系统;当上一级把任务提交给下一级时;下一级的页面上就有一条提示信息;

这种功能要怎么实现呢?因为下一级一定要时时的刷新才能知道有没有信息要提示?大家想法是怎么样?或者有什么

比较好的文章是介绍这方面了???

29 个解决方案

#1


你可以用JS去控制多长时间查一次数据库
比如隔10分钟查一次,有任务就弹出来。
参考

#2


ajax 轮询
或者加入一个隱藏的FLASH等  使用SCOKET通信

#3


使用长连接好于AJAX轮询
使用SCOKET最好,但要借助FLASH/silverlight 或者支持HTML5的浏览器

#4


有几种方法了
1.Ajax 方式, 让页面上一个方法反复的发送请求,去服务端获取信息;
2.和服务端建立一个长连接(不让服务端返回结束的请求状态)。
3.XMPP技术,这个稍微麻烦点。

#5


即时信息提示功能的实现(高手)
引用 1 楼  的回复:
你可以用JS去控制多长时间查一次数据库
比如隔10分钟查一次,有任务就弹出来。
参考

#6


Ajax 方式, 让页面上一个方法反复的发送请求,去服务端获取信息;
我喜欢用这个方法

#7


实时监控,实时触发。。

#8


高手们出来啊

#9


发送消息,JS异步刷新或者线程刷新就可以了

#10


定时刷新。

#11


使用长链接吧

#12


做个定时刷新是最简单的

#13


我也做过,
呵,我用了一个比较笨的方法。
当时,我的网站是又母版页的,
这样就好办了,每次点击链接就重新加载一次,
在母版页定义一个弹出框的方法就可以了。

#14


引用楼主  的回复:
大家想法是怎么样?或者有什么

比较好的文章是介绍这方面了???
不提供这方面的技术方案。你有什么 具体简单技术问题可以提出来,这类前沿的设计问题不可能给你抄代码。你能提出什么样的问题,就决定了你能得到什么样的回答。

#15


现在的问题是:

1:我应该怎么把这个要提示任务信息存在哪?

2:我是不是要用JS不断的刷新才能在一接到有任务时就提示??

#16


使用长连接好于AJAX轮询
使用SCOKET最好,但要借助FLASH/silverlight 或者支持HTML5的浏览器

#17


同问,如果不断地刷新检查有没新信息过来,这样如查用这个系统的人比较多,五百人同时在线,那服务器会不会当掉呀。

是否有高手能具体解析一下长连接和scoket两种方法。thanks.

#18


该回复于2012-05-21 10:17:41被版主删除

#19


企业内部的系统,使用人员应该不会很多的,简单点的用ajax好了,领导分配一项任务给下属,那你肯定要保存这个任务信息的吧,同时多保存一条通知,ajax每个5分钟(这个时间你自己设置),去读取属于当前员工的未读的通知,如果有的话,跳出提示框(个人认为这个比较丑),或者在右下见弹一个通知框提示用户有未读通知。

#20


引用 17 楼  的回复:
同问,如果不断地刷新检查有没新信息过来,这样如查用这个系统的人比较多,五百人同时在线,那服务器会不会当掉呀。

是否有高手能具体解析一下长连接和scoket两种方法。thanks.

用缓存啊,这个数据量应该不是很大的,缓存每隔一分钟去取一次数据,那么就算是1000人在线,大家只是去缓存取数据,数据库还是一分钟只查询一次,个人认为这个瓶颈应该在数据库查询量上面,程序中用缓存的话,应该不会导致500人在线就宕机,可以用带key,value的对象保存数据。

#21


顶啊高手高手


现在的问题是:

1:我应该把这个要提示任务信息存在哪?

2:我是不是要用JS不断的刷新才能在一接到有任务时就提示??

#22


引用 21 楼  的回复:
顶啊高手高手


现在的问题是:

1:我应该把这个要提示任务信息存在哪?

2:我是不是要用JS不断的刷新才能在一接到有任务时就提示??

任务信息存在哪里:肯定是要存在数据库的,要不然如果有一天某个人想知道有多少任务,你怎么给人家统计呢?
不管是什么机制实现,socket,还是js,你肯定要有一个监控机制的,socket是依靠listen来监听指定端口来实现消息获取,那么js你肯定要有一个刷新机制,比如每隔一分钟用ajax去请求特定的页面获取消息。消息延迟一分钟对于实时性要求不是很高的系统都是可以接受的。

#23


存数据库????晕那你时时去刷新啊....

#24


引用 1 楼  的回复:
你可以用JS去控制多长时间查一次数据库
比如隔10分钟查一次,有任务就弹出来。
参考
即时信息提示功能的实现(高手)

#25


定时刷新

#26


引用 1 楼  的回复:
你可以用JS去控制多长时间查一次数据库
比如隔10分钟查一次,有任务就弹出来。
参考


基本上都是这种方法,但弊病也是显而易见的

#27


引用 23 楼  的回复:
存数据库????晕那你时时去刷新啊....

I 服了 you 都说了让你定时去查询一次的,怎么叫时时刷新数据库,程序指定1分钟或者多长时间查询一次数据库,然后把查询结果在程序中缓存起来,客户端读取消息只是去取程序缓存中的数据,哪有去数据库取数据?其实领导分配任务本来就是保存在数据库的,你难道保存文本文档?你只是去数据库取出已经分配的,但是还没有员工查看/操作的任务。这个有问题么?

#28


存数据库是我觉得最差的做法.....

#29


不管存在哪里,只要存了。就能拿出来!

#1


你可以用JS去控制多长时间查一次数据库
比如隔10分钟查一次,有任务就弹出来。
参考

#2


ajax 轮询
或者加入一个隱藏的FLASH等  使用SCOKET通信

#3


使用长连接好于AJAX轮询
使用SCOKET最好,但要借助FLASH/silverlight 或者支持HTML5的浏览器

#4


有几种方法了
1.Ajax 方式, 让页面上一个方法反复的发送请求,去服务端获取信息;
2.和服务端建立一个长连接(不让服务端返回结束的请求状态)。
3.XMPP技术,这个稍微麻烦点。

#5


即时信息提示功能的实现(高手)
引用 1 楼  的回复:
你可以用JS去控制多长时间查一次数据库
比如隔10分钟查一次,有任务就弹出来。
参考

#6


Ajax 方式, 让页面上一个方法反复的发送请求,去服务端获取信息;
我喜欢用这个方法

#7


实时监控,实时触发。。

#8


高手们出来啊

#9


发送消息,JS异步刷新或者线程刷新就可以了

#10


定时刷新。

#11


使用长链接吧

#12


做个定时刷新是最简单的

#13


我也做过,
呵,我用了一个比较笨的方法。
当时,我的网站是又母版页的,
这样就好办了,每次点击链接就重新加载一次,
在母版页定义一个弹出框的方法就可以了。

#14


引用楼主  的回复:
大家想法是怎么样?或者有什么

比较好的文章是介绍这方面了???
不提供这方面的技术方案。你有什么 具体简单技术问题可以提出来,这类前沿的设计问题不可能给你抄代码。你能提出什么样的问题,就决定了你能得到什么样的回答。

#15


现在的问题是:

1:我应该怎么把这个要提示任务信息存在哪?

2:我是不是要用JS不断的刷新才能在一接到有任务时就提示??

#16


使用长连接好于AJAX轮询
使用SCOKET最好,但要借助FLASH/silverlight 或者支持HTML5的浏览器

#17


同问,如果不断地刷新检查有没新信息过来,这样如查用这个系统的人比较多,五百人同时在线,那服务器会不会当掉呀。

是否有高手能具体解析一下长连接和scoket两种方法。thanks.

#18


该回复于2012-05-21 10:17:41被版主删除

#19


企业内部的系统,使用人员应该不会很多的,简单点的用ajax好了,领导分配一项任务给下属,那你肯定要保存这个任务信息的吧,同时多保存一条通知,ajax每个5分钟(这个时间你自己设置),去读取属于当前员工的未读的通知,如果有的话,跳出提示框(个人认为这个比较丑),或者在右下见弹一个通知框提示用户有未读通知。

#20


引用 17 楼  的回复:
同问,如果不断地刷新检查有没新信息过来,这样如查用这个系统的人比较多,五百人同时在线,那服务器会不会当掉呀。

是否有高手能具体解析一下长连接和scoket两种方法。thanks.

用缓存啊,这个数据量应该不是很大的,缓存每隔一分钟去取一次数据,那么就算是1000人在线,大家只是去缓存取数据,数据库还是一分钟只查询一次,个人认为这个瓶颈应该在数据库查询量上面,程序中用缓存的话,应该不会导致500人在线就宕机,可以用带key,value的对象保存数据。

#21


顶啊高手高手


现在的问题是:

1:我应该把这个要提示任务信息存在哪?

2:我是不是要用JS不断的刷新才能在一接到有任务时就提示??

#22


引用 21 楼  的回复:
顶啊高手高手


现在的问题是:

1:我应该把这个要提示任务信息存在哪?

2:我是不是要用JS不断的刷新才能在一接到有任务时就提示??

任务信息存在哪里:肯定是要存在数据库的,要不然如果有一天某个人想知道有多少任务,你怎么给人家统计呢?
不管是什么机制实现,socket,还是js,你肯定要有一个监控机制的,socket是依靠listen来监听指定端口来实现消息获取,那么js你肯定要有一个刷新机制,比如每隔一分钟用ajax去请求特定的页面获取消息。消息延迟一分钟对于实时性要求不是很高的系统都是可以接受的。

#23


存数据库????晕那你时时去刷新啊....

#24


引用 1 楼  的回复:
你可以用JS去控制多长时间查一次数据库
比如隔10分钟查一次,有任务就弹出来。
参考
即时信息提示功能的实现(高手)

#25


定时刷新

#26


引用 1 楼  的回复:
你可以用JS去控制多长时间查一次数据库
比如隔10分钟查一次,有任务就弹出来。
参考


基本上都是这种方法,但弊病也是显而易见的

#27


引用 23 楼  的回复:
存数据库????晕那你时时去刷新啊....

I 服了 you 都说了让你定时去查询一次的,怎么叫时时刷新数据库,程序指定1分钟或者多长时间查询一次数据库,然后把查询结果在程序中缓存起来,客户端读取消息只是去取程序缓存中的数据,哪有去数据库取数据?其实领导分配任务本来就是保存在数据库的,你难道保存文本文档?你只是去数据库取出已经分配的,但是还没有员工查看/操作的任务。这个有问题么?

#28


存数据库是我觉得最差的做法.....

#29


不管存在哪里,只要存了。就能拿出来!