仓酷云

标题: ASP.NET网站制作之用ASP.NET MVC完成基于Multipart XMLHttpRequest的 Comet仓酷云 [打印本页]

作者: 活着的死人    时间: 2015-1-18 11:20
标题: 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代码
  1. 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把持器代码
  1. 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
碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。
作者: 透明    时间: 2015-1-29 23:50
目前在微软的.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
对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。
作者: 精灵巫婆    时间: 2015-2-2 21:30
在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。
作者: 不帅    时间: 2015-2-7 01:36
CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。
作者: 海妖    时间: 2015-2-17 10:52
主流网站开发语言之PHPHP的全名非常有趣,它是一个巢状的缩写名称——“PHP:HypertextPreprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言(就像上面讲的ASP那样)。而PHP独特的语法混合了C,Java,Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。
作者: 乐观    时间: 2015-3-2 22:53
现在主流的网站开发语言无外乎asp、php、asp.net、jsp等。
作者: 愤怒的大鸟    时间: 2015-3-3 03:40
可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。
作者: 只想知道    时间: 2015-3-11 02:21
但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。
作者: 分手快乐    时间: 2015-3-17 19:08
微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。
作者: 简单生活    时间: 2015-3-24 19:51
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2