浅谈Web下的即时寻呼技术

所属分类: 实用技巧 / 应用技巧 阅读数: 1099
收藏 0 赞 0 分享
Web下(不考虑使用activex控件的那种)即时寻呼一般都是基于“拉”技术,即每隔一段时间向服务器获取最新消息,然后反映到客户端,基于“拉”技术,一般有几种形式:

frame/iframe刷新:一般是用一个隐藏的iframe/frame页面,定时刷新,从服务器获取最新消息,并执行脚本,将消息反映到客户端。
这种方法的好处是兼容性好,适用于所有支持frame和脚本的浏览器,缺点就是因为是网页直接刷新,有可能在某些机子上每次刷新都会有“吧嗒”的声音,如果浏览器状态栏可见,上面的进度条会一闪一闪的,比较烦人。例如微软最新推出的Msn Web Messenger即是基于此技术。

XmlHttp/XmlDom 无刷新:这种无刷新技术一度让Web开发者亢奋不已。在客户端,XmlDom可以根据URL获取服务器端的Xml文件并返回为一个 XmlDocument,而XmlHttp不仅可以获取xml和html,还可以向服务器端发送一个XmlDocument,而且,结合客户端脚本的定时器:setTimeout("Function()", TimeoutInterval),定时从服务器获取数据。
尤其要注意一点是不管是 XmlDom还是XmlHttp,都有“同步”和“异步”之说,如果是“同步”,则浏览器会等到把所获取的Xml全部下载完才继续执行,如果是“异步”,则浏览器会不管它有没有下载完,直接继续下一步执行。对于Web即时寻呼,还是推荐使用“异步”方式,因为“同步”方式很可能会造成浏览器“假死”的情况,对客户来说很不友好。使用“异步”就可以避免这个问题,然后可以在onreadystatechange事件中判断是否已经加载完,然后解析消息。
这种方式的好处是对于客户来说感觉不到浏览器在刷新,缺点是必须要客户端是IE,并且安装了msxml,所以兼容性不是很好。
BTW: 听说Asp.Net 2.0对于这种无刷新进行了封装,可惜没试过,不知道兼容性如何:)

脚本调用WebService无刷新:WebService是个好东西,js也可以调用webserice,微软专门有一个WebService.htc,将对WebService的调用进行了封装,可以非常方便的调用,其实即使没有WebService.htc,我们也可以自己来解析,因为 WebService实质也就是xml了,在客户端可以结合XmlDom来解析。然后借助定时器,也可以做到无刷新来获取服务器端消息。
这种方式的优缺点和第二种方式差不多。国外有个聊天室就是使用的这种技术。
更多精彩内容其他人还在看

Win XP系统语言栏丢失解决三例

案例一:   问:一台计算机使用Windows XP操作系统,最近任务栏内无法显示语言栏,我通过“区域和语言选项”里的设置找回了语言栏,重新启动计算机后,问题依旧,请问是什么问题造成的?
收藏 0 赞 0 分享

设计软件中的系统字体应用小技巧

大家都知道,在操作系统的安装目录下有字体库,要使用种字体首先需要安装,但是这会造成字体占用系统盘空间过多。设计使用的字体都不少,怎么说也有几个G,很占资源,下面教大家一个稍微节省资源的方法。
收藏 0 赞 0 分享

Access中字段上自动打开的输入法的解决方法

打开Access数据库时,在里面数据表字段输入数值时,总是会跳出输入法来,很是烦人,在网上找了一下,找到了相应的解决办法:
收藏 0 赞 0 分享

“internet explore 无法打开internet站点 已终止操作”的解决方法

在IE下,当页面还没有加载完全时,如果正在执行的JS代码中含有使用了document.createElement的话,很容易引起页面加载失败.导致提示"internet explore 无法打开internet站点 http://www.xxx.com/xxx/xxx.
收藏 0 赞 0 分享

十个习惯让你精通新的开发技术

这篇文章,是从我的《高效开发人员的五个特征》一文中抽出的一个观点。从我自身的事业和习惯中,我考虑了很多方式怎么样才能有效地学习。
收藏 0 赞 0 分享

小谈RADMIN爆破

最近做渗透测试时常碰到RADMIN一类的东西.. 一碰到此类的程序,一般我都会先看下对方把RADMIN的端口配置成什么..以及相应的PASS(加密过的)
收藏 0 赞 0 分享

动易2006序列号破解算法公布

动易2007就快发布了,把2006的算法公开吧,赚点人气,希望动易不要来找我 。
收藏 0 赞 0 分享

联众密码的逆向算法公布

闲来无事,每天上联众,联众的密码经过加密后保存在本地注册表里,看看是怎么加密的。下了个ollydbg,一路跟踪,发现算法极其简单,给出Delphi版本的解密算法(加密部分有兴趣的一起来讨论)。算法比较粗糟,谁帮优化一下:)
收藏 0 赞 0 分享

关于三种主流WEB架构的思考

做WEB好几年了,各种语言和技术都稍有涉猎。今天心血来潮,突然想总结一下。其实不论什么技术,什么需求,通常WEB开发就是通过WEB前端管理一个或大或小或独立或分布式的关系型数据库,很多东西都是相通的。这里说的WEB架构,是指WEB应用开发中每种技术独有的资源组织形式(包括文件,数
收藏 0 赞 0 分享

一篇关于程序员性格的文章第1/3页

软件开发中人们很少注意个人性格问题。自从 1965年Edsger Dijkstra的有里程碑意义的文章“程序开发是一种人类活动”发表以来,程序员性格被认为是合理的和有成效的研究领域,虽然有些题目如“大桥建筑者的心理”和“对律师行为的研究实验”看起来可能是荒唐的,而在计算机领域,“
收藏 0 赞 0 分享
查看更多