|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
简单的说:.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就不能在手机上执行,手机的游戏也不能直接在微机上执行。 |
|