ASP网页设计完成谈天室的悄然话功能(中)(转贴)...
缺乏可以共同遵循的行业标准,ASP还处在发展初期,大家对它的理解不同,如产品和服务标准,收费标准等,不利于行业的健康发展。谈天室谈天室程序是一个application和session工具分离性很强的asp程序。起首,它对照具有及时性,谈天速率太慢,那末没有人会喜好的,并且在多人同时讲话的时侯,假如程序处置欠好,那末不免会产生张官李戴的征象,好比申明明张三说的话在先。李四说的话在后,但显现出来的了局倒是倒转了。另有就是每一个客户端显现的发言内容分歧步。(这里夸大一点,谈天室的发言内容主动更新体例次要是两种,一种是服务器主动更新,也就是它的谈天显现内容区是一个正在翻开中的html流,每当服务器吸收到用户的发言内容就会发送到用户的扫瞄器中。另外一种是用户端准时向服务器端收回更新哀求。后者的及时性没前者强。但制造起来复杂,要完成服务器端主动更新,光靠asp是没法完成的。由于ASP没有内置的延时功效。如今所举例的谈天室次要是今后者来讲明的,但办法一样能够前者里利用)要办理多个用户同时讲话和显现的按次成绩,那末就必需为发言内容创建一个缓冲区,就好象操纵体系的键盘缓冲区的功效一样,即便体系正在忙于处置其余义务,但仍是能够正确地承受用户输出。
下面的程序例子:
dimchats(20)
forn=1to20
chats(n)=application("chats")(n)
next
就是创建了一个20个元素的chats数组,那末只必要再创建一个全局公用的计数器(用application工具来保留),用以唆使以后最新的讲话内容是在那一个元素傍边。而每一个用户又界说一个session工具的计数器。用以纪录以后谈天者本机显现的信息是显现到那一条发言纪录上。二者之差的发言内容都必需鄙人一次更新措辞内容的时侯显现出来。
chats数组作为一个发言缓冲区,是必要轮回利用的。好比第一句讲话的保留在chats(1)中,第二十句则保留在chats(20)中,而第二十一句则从头利用chats(1)来保留,而把第一句的内容掩盖失落。而chats数组只是用于处置大众的发言内容。也就是否是“悄然话”假如把悄然话也作为一条新的信息保留在这里,那末就会影响的计数器了。由于关于非悄然话的谈天工具来讲。这句话是偶然义的。为了削减前提判别,就把悄然话别的用application("chat")这个使用工具变量来保留。在悄然话的处置用,小虎并没有利用缓冲区,因而当统一谈天室内多个网友同时利用悄然话功效时,便可能呈现有的悄然话在没被显现出来之前,被遗漏的弱点,人人无妨能够发扬本人的伶俐往改善一下哦:)
当处置完chats的对话内容后。必需把它从头存储到application("chats")(n)这个全局的发言缓冲区中,那样才干让一切用户共享对话内容。
上面是对私语的发言处置
私语处置
application("chat")="《fontcolor=blue》"&usertime&"《/font》《fontcolor=black》"&username&"《/font》《i》悄然地对《fontcolor=#00bb00》"&request.FORM("whoto")&"《/font》私语《/i》:《fontcolor=#0000aa》"&usersays&"《/font》《BR》《BR》"
对谁说
application("chatto")=request.FORM("whoto")
措辞的人
application("owner")=username
session("chat")="true"
endif
session("chat")是一个用来纪录用户是不是有悄然话的标志,当更新对话内容的时分,就经由过程判别这个标志来判别是不是有悄然话发生。同时。经由过程applicaton("chat")纪录对话内容,applicaton("chatto")悄然话的工具,application("owner")保留讲话者自己(别忘了悄然话是本人和承受悄然话的对方能够瞥见的哦:(,另有,当对ALL(一切人)发悄然话时,人人都应能瞥见这句瞧瞧话。
当讲话内容都分离进进了application("chats")(n)和applicaton("chat")这两个发言缓冲区后。下一步要做的就是显现出对话内容了。这里先向人人提一下怎样完成谈天事的准时革新(客户端自动)
在我们的html文件的头有一个如许的标志
《metahttp-equiv="refresh"content="2.5"》
这里示了html文档的更新类行,下面这个标志就是把本文档按2.5秒的速率不休主动革新,那末使用这一点,就能够完成主动更新对话内容了。我们利用的显现对话的asp文件名为top.asp。下一节人人一同来看看它的布局。
</p>ASP在国内异常流行,因为国内大多使用的是盗版的Windows和盗版的SQLServer,而ASP+COM+SQLServer实际上也是一种不错的搭配,其性能也不输于PHP+MYSQL,特别是Windows系统和SQLServer都有图形界面,比APACHE和MYSQL易于维护,因此对于不重视知识产权的国家来说也是一种不错的选择。 运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。 封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。 还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。 掌握asp的特性而且一定要知道为什么。 我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。 你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。 接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。 我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
页:
[1]