仓酷云

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

[学习教程] ASP.NET教程之使用AJAX和ASP.NET完成复杂谈天室

[复制链接]
精灵巫婆 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:29:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我实在想不明白java的机制,为什么非要那么蛋疼,在同一个平台下重复编译。  先容
  我的第一个复杂的Chatroom是用ASP3.0写成的。那无外乎有二个TextBox,他们发送动静给程序变量然后显现在一个每秒革新的页面上。在谁人时期,一个真实的谈天室必需使用JavaApplet或ActiveXcontrol。不外这统统都在Ajax到来以后改动了。AJAX是一个分离了XML和javascript的异步通讯机制。如今我们能够只用服务器代码和一点JavaScript。这篇文章就是先容怎样用AJAX手艺来构建一个复杂的谈天室。
  示例程序
  示例程序是一个单一的多用户谈天室。其外部保护着一个已登任命户的列表。列表将消灭session过时的用户。同时它还撑持一些命令好比/adminClear扫除谈天室/nick[Name]改动用户姓名。
  你还必要晓得
  这个程序利用一个类叫做ChatEngine。这个类把持了全体的用户和动静。用户被贮存在一个Hashtable里,而动静贮存在StringCollection里:
Hashtableusers;StringCollectionchat;
一个ChatEngine的全局实例被安排在Global.asax.cs:
publicstaticUChat.ChatEngine.IChatEngineEngine=newUChat.ChatEngine.ChatEngine();
一个JavaScript函数用来异步的将全局变量内的数据显现在页面上:
functionsetTimers(){timeID=window.setTimeout("updateAll()",refreshRate);}
使用每一个用户供应的称号和ID来标识用户:
publicvoidAddUser(stringid,stringuser){//makesureusernamedoesnotexistalreadyif(!UserExists(user)){//addusertouserslistusers.Add(id,user);//displayanotificationmessagetoalluserschat.Add(this.MakeServerMessage(string.Format(joinedfmt,user)));}}
  截图和完成步骤
  主页显现了谈天室的基础信息,好比有几人在谈天室、ChatLog的巨细。
  为了可以登录谈天室,必需供应一个称号。
  当Login按钮被单击。上面的代码就会被实行:
  protectedvoidLogin(objectsender,EventArgse){stringuser=txtUsername.Text;if(!ValidateNick(user))return;if(Global.Engine.UserExists(user)){lblErrorMsg.Text="Auserwiththis"+"namealreadyexists,tryagain."return;}Response.Redirect("Server.aspx?action=Login&u="+user);}
  举行一些考证今后,用户会被转向到另外一个页面,这个页面会使用AddUser函数将用户放进用户列表。当这统统都做好了。用户又会被转向到Chat.aspx页面,上面的JavaScript函数将要实行在这个页面上:

<scripttype="text/javascript">sniffBrowserType();//Showsloading..screenshowLoadScreen();//Setthejavascripttimerand//loadsuserlistandmessagessetTimers();setFocus(mytext);</script><inputtype="text"class="mytext"id="mytext">
  当用户输出了笔墨,而且按了回车。上面的代码就会被实行:
  //CapturetheenterkeyontheinputboxandpostmessagefunctioncaptureReturn(event){if(event.which||event.keyCode){if((event.which==13)||(event.keyCode==13)){postText();returnfalse;}else{returntrue;}}}functionpostText(){rnd++;//Cleartextboxfirstchatbox=getElement("mytext");chat=chatbox.value;chatbox.value=""//getuserGUIDfromurluserid=location.search.substring(1,location.search.length);//constructAjaxServerURLurl=Server.aspx?action=PostMsg&u=+userid+&t=+encodeURIComponent(chat)+&session=+rnd;//Createandsettheinstance//ofappropriateXMLHTTPRequestobjectreq=getAjax();//Updatepagewithnewmessagereq.onreadystatechange=function(){if(req.readyState==4&&req.status==200){updateAll();}}req.open(GET,url,true);req.send(null);}
  竣工!就是这些了。没甚么出格的中央,下载示例程序,然后了解这些代码!

如果需要重新编写代码,几乎任何一门计算机语言都可以跨平台了,还用得着Java嘛,而且像PHP/C#等语言不需要修改代码都可以跨Windows/Linux。
再现理想 该用户已被删除
沙发
发表于 2015-1-17 18:06:08 | 只看该作者
如今主流的Web服务器软件主要由IIS或Apache组成。IIS支持ASP且只能运行在Windows平台下,Apache支持PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台。
板凳
发表于 2015-1-21 06:54:13 | 只看该作者
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。
飘灵儿 该用户已被删除
地板
发表于 2015-1-30 10:17:27 | 只看该作者
那么,ASP.Net有哪些改进呢?
莫相离 该用户已被删除
5#
发表于 2015-2-6 09:51:21 | 只看该作者
在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗?
若天明 该用户已被删除
6#
发表于 2015-2-15 22:23:47 | 只看该作者
关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。
乐观 该用户已被删除
7#
发表于 2015-3-11 20:21:07 | 只看该作者
PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。
兰色精灵 该用户已被删除
8#
发表于 2015-3-19 11:43:56 | 只看该作者
主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和VisualBASIC类似,可以像SSI(ServerSideInclude)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。
小妖女 该用户已被删除
9#
发表于 2015-3-27 23:08:24 | 只看该作者
CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-4 17:34

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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