popup java_Web的桌面提醒(Popup)

大多数Windows程序都有桌面提醒(Popup)功能,如MsnMessenger,Outlook网络

大多数Windows程序都有桌面提醒(Popup)功能,如Msn Messenger,Outlook2003,FoxMail,SharpReader等,对用户来说可以非常的方便最新的信息。

在Web中借用IE5.5+的Popup,也可以实现类似的功能,在CnForums1.2中新增了一种特性就是类似于Outlook2003一样,当有新帖子/私人留言时就有Popup提示,如图:

一,什么是Popup

在IE5.5+中开始支持的Popup窗口有很多很特别的特性:

Popup窗口可以超出浏览器窗口区域;

可以不用担心被下拉框、flash、Iframe等这些东西遮挡;

即时窗口没有焦点,Popup窗口也可以弹出并显示

一个Popup窗口打开后,当在它的区域以外点击或者另一个Popup窗口被打开时都会自动关闭;

Popup窗口是没有焦点的;

用户不能改变Popup窗口大小;

Popup窗口中的内容是不能被选择的;

......

只是Web下的Popup比起Windows中的Popup还是弱一些,但是已经够用了。Msdn上对Popup有非常详细的介绍“UsingthePopupObject(Internet Explorer - DHTML)”

二,怎么创建一个Popup

Msdn上的示例代码:

//

创建Popup对象

var

oPopup

=

window.createPopup();

//

Popup对象和Window对象一样,里面包含了一个完整的HTML文档

var

oPopupBody

=

oPopup.document.body;

None.gif

//

在Body中插入HTML

oPopupBody.innerHTML

=

"

Display some HTML here.

"

;

//

设置显示的位置、大小、参照物

oPopup.show(

100

,

100

,

200

,

50

, document.body);

三,Popup的显示

多个Popup不能共存(Popup中创建Popup除外),所以web中的Popup不方便像Msn Messenger的Popup提示那样“爬楼梯”,所以最简单有效的方法就是像Outlook2003的Popup一样,逐个Popup提醒。

(参考WebMessenger的实现)用Js建个队列,将需要Popup提示的内容都放在队列中,用一个定时器,定时从队列中取一个Popup,每个Popup显示7秒。

四,怎么知道有新帖子

在Web程序中,只能通过“拉”的技术,即定时向服务器发送请求——通过定时刷新或者是xmlhttp的Get。

我们需要有个时间戳来记录最后请求时间,这样就好根据这个时间戳来获取时间戳之后的帖子。

如果每次根据时间戳来获取最新帖子,服务器负荷比较大,因为并不是每次请求都有新帖子的,优化一下,再给每个在线用户设置有无新帖子、有无新留言的状态位,当发表新帖子后更新每个人的“有无新帖”状态位。这样每次请求时先判断有没有新帖子,如果有新帖子,才获取所有帖子的标题和内容简要。

五,具体实现

本文由来源 21aspnet,由 system_mush 整理编辑,其版权均为 21aspnet 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值