兰色精灵 发表于 2015-1-16 23:32:50

ASP网页设计谈天室自做 Follow Me(转)

专业性的服务。有的ASP商提供垂直型的应用服务,针对某一特定行业提供应用服务。谈天室上彀而没往过谈天室的人,可谓是百里挑一,上面,我们就本人来做个最复杂的谈天室。
  今朝谈天室显现对话的体例一样平常有两种。一是每隔x秒就把全部对话显现区革新一遍,此方的坏处不言而喻:数据传输量年夜且屏幕有闪灼感;其二是有新的讲话时,才将该内容传送给客户端,并增加在原有对话的尾部,此法数据传输量就对照小且屏幕是光滑转动,视觉效果好。第一种办法的完成已有良多材料先容,因而本文将先容第二种革新体例。
  计划思绪:
  ⑴服务器端只保存最新的30条讲话作为缓冲区,新的讲话内容将最旧的讲话挤出。
  ⑵每句讲话都分派一个递增的序号。客户端最初呈现的讲话的序号纪录在Session中。
  ⑶使用埋没框架举行革新,革新时,将Session值与缓冲区的每句讲话的序号举行对照,假如序号年夜于Session值申明该讲话是新的,就将该讲话的数据掏出,并将该讲话的序号值赋给Session。
  ⑷对话显现区利用document.open()翻开后,就不再封闭,当埋没框架革新时有新数据掏出并传到客户端时,将这些原始数据格局化为要显现的内容(此事情能够在服务器端实行,但为加重服务器的包袱,就将对话的分解事情移交给客户),然后挪用document.writeln办法将讲话的内容写到对话显现区的尾部。
  ⑸在对话显现区中安排一段主动滚屏的代码,使屏幕主动向下转动,并可经由过程讲话区的复选框来选择是不是主动滚屏。
  完成办法:
  1、本程序只必要4个文件便可完成:
  ⑴chat.asp:谈天室框架文件,卖力初始化程序运转情况并随机分派四位数的数字做为用户名,再把页面从上到下分红四部分,顶、底两个框架高度为0。
  ⑵chatfyq.htm:讲话区,供应输出姓名、讲话的文本框,及一个讲话按钮和一个主动滚屏的开关(复选框),并界说在客户端实行的JavaScript:checksays()(对讲话举行无效性检测)、cls()(清空对话显现区的内容)、write()(初始化对话显现区,界说页面色彩、笔墨巨细,并安排滚屏代码)、sw(username)(在对话区点击人名时,将人名写到讲话框中)、w(un,sa,tn,dt)(将原始数据分解为完全的讲话内容,并增加到对话显现区的尾部)。
  ⑶chatt.asp:此文件位于顶部的埋没框架(高度为0)中准时革新,把新的讲话的原始数据利用<scriptLanguage=JavaScript>parent.f2.w("姓名","讲话内容","原始姓名","讲话工夫")</script>的格局输入到客户端,便可挪用chatfyq.htm中界说的w(un,sa,tn,dt)函数来显现动身言内容。
  ⑷chatsay.asp:讲话提交到此文件举行处置。此文件位于底部的埋没框架中。将讲话到场缓冲区后,当即实行和chatt.asp不异的代码段,将讲话显现出来。(chatsay.asp前面的代码和chatt.asp是不异的,之以是不在chatsay.asp前面利用Response.Redirect"chatt.asp"来挪用,是为了加速速率,由于重定向体例必要创建两次毗连:讲话提交是毗连一次,重定向时又要再毗连一次,效力低。)
  2、部分关头代码正文:
  ⑴初始化代码段:Application("chat_hh")缓冲区中最初一句讲话的序号、Session("chat_hh")就是“计划思绪⑶”中提到的Session值,用于纪录客户端已显现的最初一句讲话的序号:


假如该序号为空,标明程序未初始化
IfApplication("chat_hh")=""Then
界说缓冲区数组,共30句讲话
每句讲话占用5个地位:序号、姓名、讲话内容、原始姓名、讲话工夫
Dimsd(150)
Application.Lock
将数组赋值给Application("chat_sd"),即:讲话只保存在服务器内存中
Application("chat_sd")=sd
界说初始序号为0
Application("chat_hh")=0
Application.UnLock
EndIf
为制止序号过年夜,每当序号增年夜到65535时就将序号复位为0
IfApplication("chat_hh")>65535Then
Application.Lock
Application("chat_hh")=0
Application.UnLock
EndIf
客户端用来纪录已显现到哪句讲话的Session("chat_hh")
其值即是序号减往12,即:新来的用户能够看到原本的12句讲话
Session("chat_hh")=Application("chat_hh")-12


  ⑵chatfyq.htm中的JavaScript函数:write():


functionwrite(){
//利用document.open()翻开对话显现区,翻开后不封闭,如许就能够不休向内里增加新内容
parent.f1.document.open();
//向对话显现区中写进HTML文件头
parent.f1.document.writeln("<html><head><title>对话区</title><metahttp-equiv=Content-Typecontent="text/html;charset=gb2312">");
//写进款式表界说
parent.f1.document.writeln("<styletype=text/css>.t{color:AAAAAA;font-size:9pt;}body{font-family:"宋体";font-size:10.5pt;line-height:160%}A{text-decoration:none}A:Hover{text-decoration:underline}A:visited{color:blue}</style></head><ScriptLanguage="JavaScript1.1">");
//写进主动滚屏代码
//......(注重:此处省略的代码请拜见完全的源程序)
parent.f1.document.writeln("StartUp();</script>");
parent.f1.document.writeln("<bodybgcolor=CDE0FCtext=000000>");
parent.f1.document.writeln("<hrsize=1>【接待到临】红蜻蜓谈天室恭候您的到临。<hrsize=1>");
//将chatt.asp载进框架顶真个埋没框架中,实行准时革新功效
parent.t.location.href="chatt.asp";
}


  ⑶chatt.asp准时革新,并获得最新的讲话的代码:


将谈天室的对话内容的缓存取到sd数组中
sd=Application("chat_sd")
获得最初显现的讲话的序号
userhh=Session("chat_hh")
界说show数组,用于寄存要显现的讲话内容
Dimshow()
ReDimPreserveshow(0)
j=1
newuserhh=0
遍历缓冲区的讲话内容
Fori=1To150Step5
newuserhh=sd(i)
假如sd(i)(每句讲话的序号)年夜于用户端最初讲话的序号且讲话存在就将其存进show数组
Ifsd(i)>userhhAndsd(i)>0Then
ReDimPreserveshow(j),show(j+1),show(j+2),show(j+3)
show(j)=sd(i+1)
show(j+1)=sd(i+2)
show(j+2)=sd(i+3)
show(j+3)=sd(i+4)
j=j+4
EndIf
Next
输入javascript到客户端
Response.Write"<scriptLanguage=Ja</p>国内有些大的CRM厂商的ASP就写得不错.无论是概念还是它里面用JAVASCRIPT的能力.并不是说现在的程序员用了ASP.NET来写程序就可以说自己高档了

海妖 发表于 2015-1-20 09:48:50

它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。

若相依 发表于 2015-1-21 16:42:30

ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。

爱飞 发表于 2015-1-30 21:16:02

你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。

飘灵儿 发表于 2015-2-2 22:13:24

他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。

乐观 发表于 2015-2-8 12:24:36

跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组

变相怪杰 发表于 2015-3-7 20:23:55

ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码,能产生和执行动态、交互式、高效率的站占服务器的应用程序。

不帅 发表于 2015-3-15 13:06:37

我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。

山那边是海 发表于 2015-3-22 01:10:10

从事这个行业,那么你可以学ASP语言,简单快速上手,熟练dreamweav排版,写asp代码,熟练photoshop处理图片,打好基础就行了
页: [1]
查看完整版本: ASP网页设计谈天室自做 Follow Me(转)