云联天下首页 |  登陆 |  注册 |  密码找回 |  关于我们 | 加入收藏 
首页技术资料Perl 编程→不刷新聊天室详解 【字号: 】 【背景色 杏仁黄 秋叶褐 胭脂红 芥末绿 天蓝 雪青 灰 银河白(默认色)

不刷新聊天室详解

网址来源:http://www.kehui.net发布时间: 2002-01-21 18:12:12
  不刷新聊天室的编写是我很喜欢的话题,当然,相信许多朋友也在研究并编写。其实,在讨论它之前,我要澄清一个概念。 <br>  首先,我们假设所用编程语言为Perl。 <br>  其次,我要说:ServerPUSH不是实现不刷新聊天室的技术,而是Netscape的一种动画技术,我们不深入研究。并且我还没有见过用这种技术的人。 <br>  不刷新聊天室实现方法有两个,一个是循环技术(我自己下的定义),一个是Socket技术。 <br>  我来解释一下这两个技术: <br>  一、循环技术 这个技术是大多数的不刷新聊天室采用的,它要用$|=1;来配合。$|=1;并不是不刷新聊天室专用的语句,它的意思是:不利用缓存显示页面。如果我有一个输出很长的Perl程序,利用$|=1;输出后,它就会读到一句print 之类的输出语句,然后马上在客户端浏览器显示输出内容。我们可以发现,如果在$|=1;的基础上,用一个死循环while(1){},再循环里面加入特定的语句,那么就是一个不刷新的聊天室了。先谈到这里。 <br>  二、Socket技术 起初我不明白如何实现,当我用VB模拟WebServer后,我就知道为什么这个技术可以开发部刷新聊天室了。Socket用到的也是死循环。但是它的原理不一样。他是以TCP模式连接到客户端浏览器,然后不停给客户端发送信息。因为浏览器没有收到服务器的停止信息,所以就可以一直发送并显示。 <br>  下面,我们来讨论一下,他们的缺点和优点。 <br>  循环技术,运用它,你的WebServer将有灾难。它将开n个Perl进程,来满足n个用户的死循环要求。一般超过5个人的话,服务器就慢了。但是这种程序开发容易。 <br>  Socket技术,开发很困难,你必须对Webserver有了解,了解HTTP协议(只要一点就可以,很简单的),还有就是端口处理啊,算法啊。呵呵~不过速度是很快。目前支持Socket的空间很少。因为你的程序要自己开端口,总不能这样吧:go.163.com:8888。哈哈。 <br>  好了,谈了那么多,就我编写的聊天室,我来说说具体应用方法。在这里只讲循环技术。



#!/usr/bin/perl <br>#By Hackfan <br>#www.msger.net <br>#main.pl



$|=1; <br>print "Content-type:text/html; charset=gb2312nn";



open(FILE,"text.txt"); <br>@n=<FILE>; <br>close(FILE); <br>$lines=@n; <br>print @n;



while(1){ <br>    open(FILE,"text.txt"); <br>    @n=<FILE>; <br>    close(FILE); <br>    $newlines=@n; <br>    if($newlines>$lines){ <br>  for($a=$lines;$a<$newlines;$a++){ <br>print "$n[$a]"; <br>} <br>$lines=$newlines; <br>} <br>}



exit;



  让它运行的方法:建立text.txt文件,然后运行程序。并同时打开text.txt,不停加入新行新内容。搞定。 <br>  我只是抛砖引玉,Socket编写也不难! <br>  另外,如果你不喜欢一闪一闪的ClientPull聊天室,又怕不刷新聊天室浪费资源,那么Javascript聊天室是你最好的选择。Javascript聊天室利用ClientPull技术,然后把最新的聊天内容用document.write方式传到对方谈话窗口里面。这样看上去很想不刷新聊天室。具体运作方法在这里略去,有兴趣联系我:hackfan@163.net OICQ:106814。

kehui 

相关新闻
v cgi怎么过滤英文字符??? 2002-01-21 18:12:12
v CGI站点搜索 2002-01-21 18:12:12
v CGI在线人数统计 2002-01-21 18:12:12
v 网页投票程序 2002-01-21 18:12:12
v 在线交流程序 2002-01-21 18:12:12
v EOF在留言程序中引起的问题 2002-01-21 18:12:12
v perl编程比php编程如何 2016-02-23 22:24:08
  最新新闻
智慧家居
智慧家居颠覆传统智能家居
智慧云谷让智能家居变成有智慧的
智慧云谷引领智慧家居新生活
科技改变生活 智慧云谷智慧家居系
智慧家居领航者,智慧云谷助你玩
智能家居如何赢得市场美誉度?
智慧云谷智慧家居:创业者有无限
WiFi智能家居你还在用?这样的智
互联网+助推智能家居产业
智慧云谷为您打造真正的智能家居
智能家居产业需要的不是单品,而
新家如何选择开关?智慧云谷iWis
智能传感器-世界首款“智”为你的
智慧云谷开关智能安防智能空气质
智能开关品牌,如何选择智能开关
秋季干燥,智慧家居温湿度传感器
传感器助力智慧家居 感知爱家
iWiscloud智能触摸开关缔造家居装

  最新帖子
 ※室内空气污染的危害及  [sensor]
 ※超声波风速传感器在生  [sensor]
 ※这么冷清  [gabc111]
 ※手机APP操作有问题  [ssy11407]
 ※智慧云谷智慧家居将在  [cici]
 ※上传下载  [cici]
 ※下载智慧家居  [apple2008]
 ※秋季干燥,智慧家居温  [apple2008]
 ※智慧家居紧扣热点 安全  [apple2008]
 ※办公大楼如何智慧化管  [apple2008]
 ※智慧云谷工业自控的优  [apple2008]
 ※传感器助力智慧家居 感  [apple2008]
 ※智能开关品牌,如何选  [apple2008]
 ※智慧云谷开关智能安防  [apple2008]
 ※没有专业人员,如何安  [apple2008]
 ※烟台智慧云谷董事长任  [apple2008]
 ※互联网+助推智能家居产  [apple2008]
 ※WiFi智能家居你还在用  [apple2008]
 ※智慧云谷智慧家居:创  [apple2008]
 ※智能家居如何赢得市场  [apple2008]
钯碳回收 硝酸银回收 银浆回收 银焊条回收 回收银浆 氯化钯回收 氯化钯回收 氧化钯回收 回收硝酸钯 钯水回收价格 海绵钯回收 钯炭回收价格 回收镀金板 深圳钯碳回收 镇江氯化钯回收 杭州钯浆回收 银浆回收多少钱 回收钯碳公司 硝酸银的价格 那里有回收金 氯化钯回收价格 江苏擦银布回收 硝酸银价格 德州钯粉回收 银铜回收 回收钯粉 回收铂碳催化剂 佛山钯碳回收 金盐回收价格 海绵钯回收 钯碳高价回收 钯回收价格 钯炭回收