资讯   |   开发   |   选机中心   |   产品大全 | IBM | 惠普 | 联想 | 戴尔 | 苹果 | 神舟
更多: | 华硕 | 明基 | 方正 | 紫光 | TCL | 夏新 | 联宝 | 宏碁 | 七喜 | 长城 | 清华同方 | 海尔 | 三星 | 东芝 | 索尼 | 富士通 | LG | 技术 | ddnoon
当前位置:笔记本 > 编程开发 >
Advertisement
文章正文

无刷新聊天室技术实现方法(ASP相关)_编程

类型:转载   责任编辑:asp.net   日期:2007/05/23


热门软件下载:


   
  • php实现ping(转) 
  • PHP的XML分析函数(转) (介绍这个PHP里的XML分析函数的文章可不太有哦。。看过这篇就应该清楚点了吧... 
  • 不知道大家对DES有没有兴趣,今天在整理的时候,看到我在一年半前翻译的一篇文章。 
  • 一个简单的cache示例(不过太简单了一些!) 
  • PHP计时类的例子 
  • 用php和imagemagick来处理图片文件的上传和缩放处理(转贴) 
  • phplib里带的模板功能的确非常好用,但有个致命的小错误需要更正! 
  • 换个角度谈JSP和PHP(摘) 
  • CGI安全漏洞资料速查v1.0(转四) 
  • 写了个以交替背景色显示输出的函数,只有三行。。。呵呵。。。 
  • 页面导航:

    正文内容:
    无刷新聊天室技术实现方法
      
    一、统一名词
    文字框:显示聊天内容的框架页面
    输入框:输入聊天信息的框架页面
    刷新框:自刷新获取最新聊天信息的框架页面,该页面不直接显示出来

    二、如何实现
    实现无刷新,就是要在当前文字框聊天内容后面不断的添加新的聊天信息。
    实现的方式是“添加新信息”,而不是“重新刷新”。

    三、技术要点
    实现像chat.163.com的无闪烁刷新的聊天室要用到的关键代码:
    1.自刷新:
    <meta http-equiv="refresh" content="2">
    2.向html文件写代码:
    <script>
    top.frametext.document.write("text");
    </script>

    四、例子
    1.frame.asp页面。最简单的包含三个框架页
    文本框frametext.htm;name=frametext
    输入框frameinput.asp;
    刷新框framerefresh.asp;

    2.文本框frametext.htm内容:
    最简单的文本内容。略

    3.输入框frameinput.asp内容:


    4.刷新框framefresh.asp内容(关键)
    ......
    <%
    此处用代码获取最新的聊天信息
    最新信息保存在数组arrrecord()
    outnum参数纪录是否有新的聊天纪录出现
    %>
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=gb2312">
    <meta http-equiv="refresh" content="2"><!--定时刷新获取最新信息-->
    .....
    <%
    if outnum>0 then 对于用户来讲,如果有新的信息的话,则输出新信息,否则不
    输出
    response.write "<script language=""javascript"">"
    for i = 1 to outnum
    response.write "top.frametext.document.write("""& arrrecord(i) &""")
    ;"
    next
    response.write "</script>"
    end if
    %>
    .....

    五、相关问题
    1.自刷新存在的一个问题是焦点定位问题(也就是自动滚屏的问题)。用户在文
    本框看到的都是第一次进入chatroom看到的内容的位置,不会自动滚屏到新信息
    的位置,必须滚动滚动栏才可以。
    在chat.163.com,它通过用户点选“自动滚屏”的方法来实现。其实就是选择“
    自动滚屏”,程序将启用控制文本框滚屏的一个js程序,关键部分为:
    function scrollwindow()
    {
    .....
    this.scroll(0, 65000); //将文本框scroll到指定的位置。这里选定(0,65000)
    ,就是指向最左下角的位置,由于屏幕高度才600不到,所以在一个用户聊天过程
    中,几乎永远不可能达到(0,65000)的位置。这样就保证了屏幕永远滚到最底层。

    settimeout(scrollwindow();,200); //循环。否则只滚动一次是没用的
    }

    2.清屏。如果不清屏,一直开着聊天窗口,文本框文字内容将永无止境的增加。
    清屏可以通过reload 文本框页面的方法实现。 

     

     
    热门推荐笔记本: 苹果笔记本
    相关文章:
    笔记本相关:
    IT技术文章:
    webmaster:popbb@126.com   最佳浏览:1024X768 MSIE
    ©2007 popbb.net All Rights Reserved