仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 416|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网站制作之谈天室完成私聊(二)

[复制链接]
变相怪杰 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:21:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用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对于服务器的要求较高,一般的服务器如果访问量一大就垮了,不得不重启。
爱飞 该用户已被删除
沙发
发表于 2015-1-20 09:34:09 | 只看该作者
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
飘飘悠悠 该用户已被删除
板凳
发表于 2015-1-26 22:39:38 | 只看该作者
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
柔情似水 该用户已被删除
地板
发表于 2015-2-2 10:11:56 | 只看该作者
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
莫相离 该用户已被删除
5#
发表于 2015-2-7 17:50:42 | 只看该作者
ASP主要是用好六个对象,其实最主要的是用好其中两个:response和request,就可以随心所欲地控制网页变换和响应用户动作了。
简单生活 该用户已被删除
6#
发表于 2015-2-22 19:51:33 | 只看该作者
下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...
海妖 该用户已被删除
7#
发表于 2015-3-7 01:29:48 | 只看该作者
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
兰色精灵 该用户已被删除
8#
发表于 2015-3-14 03:38:54 | 只看该作者
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
若相依 该用户已被删除
9#
发表于 2015-3-20 23:57:13 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 14:10

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表