仓酷云

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

[学习教程] ASP.NET网站制作之用ASP.NET MVC完成基于Multipart XMLHttpRequest的 Comet仓酷云

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:20:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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

本版积分规则

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

GMT+8, 2024-5-3 14:54

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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