活着的死人 发表于 2015-1-18 11:20:54

ASP.NET网站制作之用ASP.NET MVC完成基于Multipart XMLHttpRequest的 Comet仓酷云

简单的说:.net只有微软一家在做的,微软也不允许别人跟他做相同的工具,所以他就把需要的工具全部封装在.net的平台上了;而net网页编程是公开了。Comet是甚么?
英文注释:Cometisawebapplicationmodelinwhichalong-heldHTTPrequestallowsawebservertopushdatatoabrowser,withoutthebrowserexplicitlyrequestingit.(来自wiki)
中文注释:Comet是基于HTTP长毗连的“服务器推”手艺(来自IBMdeveloperWorks)。
MultipartXMLHttpRequest是甚么?
英文注释:ItisamethodforbundlingmultipleHTTPrequestsintoasingleHTTPrequestandunbundlingontheclientsidethroughaJavascripthandler.(来自TechnoMagiciansBlog)
中文办理:它同意客户端只用一个HTTP哀求就能够从服务端向客户端传送多个资本(来自鼓浪鱼-前端博客)。
为何要用ASP.NETMVC完成?
今天进修了“反向Ajax,第1部分:Comet先容”(英文版),但文中的代码服务端代码用的是Java。为了更好的了解这部分常识,实践体验一下,因而用ASP.NETMVC完成了个中一个示例——基于Multi-partXMLHttpRequest的Comet。
这工具有有用代价吗?
说假话,没有有用代价,只为进修之用。由于撑持MultipartXMLHttpRequest的扫瞄器太少,今朝只晓得FireFox撑持,Chrome与IE9都不撑持。
代码示例
1.前端JavaScript代码
varxhr=$.ajaxSettings.xhr();xhr.multipart=true;xhr.open(GET,/comet/multipart,true);xhr.onreadystatechange=function(){if(xhr.readyState==4){$(#logs).append(xhr.responseText+"<br/>");}};xhr.send(null);关头代码就是xhr.multipart=true;
2.服务端ASP.NETMVC把持器代码
publicclassCometController:Controller{//停止标记,这是随机天生的staticstringBoundary="ABCDEFGHIJKLMNOPQRST";publicActionResultMultipart(){Response.ContentType="multipart/x-mixed-replace;boundary=""+Boundary+""";Response.Headers.Add("Connection","keep-alive");Response.Output.Write("--"+Boundary);Response.Flush();//每隔5秒种向客户端发送一次数据while(true){//发送给客户真个数据的MIME范例,假如是JSON,就用application/json//注重这里必定要用WriteLine()Response.Output.WriteLine("Content-Type:plain/text");//这句天生空行的代码不克不及少Response.Output.WriteLine();Response.Output.WriteLine(DateTime.Now.ToString("HH:mm:ss.FFF"));//发送停止标记,客户端就晓得完成了一次发送Response.Output.WriteLine("--"+Boundary);Response.Flush();System.Threading.Thread.Sleep(5000);}}}下面这段代码固然看起来复杂,但事先调试时仍是费了一些周折。
代码下载
CometMvcDemo.rar
必要在IIS中以集成形式运转该程序(以VS2010内置Web服务器运转会报错)。会见MultipartXhr.htm,会5秒钟显现一次服务器工夫。
因为各系统的API不同,代码调用API编写程序就会遇到很多不兼容的地方,比如net网页编程改写后的Serv-U就不能在手机上执行,手机的游戏也不能直接在微机上执行。

admin 发表于 2015-1-20 20:51:06

碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。

透明 发表于 2015-1-29 23:50:13

目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案.

莫相离 发表于 2015-1-31 10:32:41

对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。

精灵巫婆 发表于 2015-2-2 21:30:38

在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。

不帅 发表于 2015-2-7 01:36:17

CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。

海妖 发表于 2015-2-17 10:52:20

主流网站开发语言之PHP:PHP的全名非常有趣,它是一个巢状的缩写名称——“PHP:HypertextPreprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言(就像上面讲的ASP那样)。而PHP独特的语法混合了C,Java,Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。

乐观 发表于 2015-3-2 22:53:18

现在主流的网站开发语言无外乎asp、php、asp.net、jsp等。

愤怒的大鸟 发表于 2015-3-3 03:40:48

可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。

只想知道 发表于 2015-3-11 02:21:38

但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。

分手快乐 发表于 2015-3-17 19:08:21

微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。

简单生活 发表于 2015-3-24 19:51:19

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
页: [1]
查看完整版本: ASP.NET网站制作之用ASP.NET MVC完成基于Multipart XMLHttpRequest的 Comet仓酷云