仓酷云

标题: ASP.NET教程之在ASP.NET Atlas中挪用Web Service―批... [打印本页]

作者: 山那边是海    时间: 2015-1-16 22:39
标题: ASP.NET教程之在ASP.NET Atlas中挪用Web Service―批...
数据库有很多应用领域,但是如果你单单学数据库的话基本上做数据库管理员比较合适而已,跟领域结合的你还得再学习那些领域知识。(其实数据挖掘我真是不懂,本来这学期开了一门课了。asp.net|web  关于Atlas程序,在某些情形下,我们必要在短工夫内挪用大批的WebService,比方某个列表顶用户疾速的点击删除。这时候收集带宽,不乱水平等等常常会形成较长工夫的提早。假如能够将这些挪用包装成一个单一的哀求,那末用户只需忍耐一次收集提早,便可失掉处置的了局,也直接的进步了效力。仿佛这并非一个很简单完成的功效,但侥幸的是,Atlas中内建了对批量挪用WebService的撑持,您所必要的只是在程序中复杂设置一下。
  Atlas中每一个WebService的挪用哀求都有三个优先级:0:高,1:中,2:低,默许值为中。
  在挪用的时分您能够经由过程priority参数(请参考:在ASP.NETAtlas中挪用WebService――处置毛病,超时和呼应用户的作废操纵)指定本次挪用的优先级。关于高优先级的挪用,Atlas其实不使用批量挪用,每次城市当即发送该哀求;关于中和低优先级的挪用,Atlas会将必定工夫(请参考上面WebRequestManager的先容)内的挪用包装成一个独自的哀求一同发送,或是当待挪用的哀求到达指定命目(请参考上面WebRequestManager的先容)时一同发送。个中假如待挪用的哀求太多,那末会从中选择中优先级的哀求起首挪用。
  启用Atlas内建的批量挪用WebService撑持,您起首必要在web.config中注册服务器端处置批量挪用的handler(默许的AtlasWebSiteTemplate已启用了这个handler):
<httpHandlers>
<addverb="*"path="atlasbatchcall.axd"type="Microsoft.Web.Services.MultiRequestHandler"validate="false"/>
</httpHandlers>
  然后在页面的AtlasXML剧本中到场对WebRequestManager的显现声明并设定该页面同意对WebService的批量挪用:
<scripttype="text/xml-script">
<pagexmlns:script="http://schemas.microsoft.com/xml-script/2005">
<components>
<webRequestManagerbatchSize="5"enableBatching="true"batchDelay="3000"/>
</components>
</page>
</script>
  这里您必要注重的是WebRequestManager的以下三个属性:
  enableBatching:设定该页面是不是同意批量挪用,默许值为false。这里我们应当设置为true。
batchSize:设定一次批量挪用中包括的哀求的最年夜数目,默许值为5。当待挪用的哀求凌驾这个设准时,即便未到达batchDelay中的设准时限,也立即收回该批量哀求。
  batchDelay:设定一次批量挪用的守候时限。默许值为1000(毫秒)。当守候时限凌驾这个设准时,即便未到达batchSize中的哀求数目,也立即收回该批量哀求。
  云云设定后,页面中的每个WebService哀求城市使用批量挪用。以是,关于独自的一次挪用,您应当将其优先级指定为高。
  让我们来看一个实例,起首编写一个WebService,个中有下述WebMethod,两个参数分离代表该义务的按次(如许我们能够分清义务实行的按次)和优先级:
[WebMethod]
publicstringDoTask(inttaskID,intpriority)
{
if(priority<0||priority>2)
thrownewException("prioritycanonlybe0,1or2!");
returnstring.Format("Task(ID:{0},Priority:{1})finished.",taskID,priority);
}
  然后依照开首部分代码在web.config中启用批量挪用,并在页面上增加WebRequestManager,不要忘了页面上还必要一个ScriptManager,援用下面界说的WebService:
<atlas:ScriptManagerID="scriptManager"runat="server">
<Services>
<atlas:ServiceReferencePath="SampleService.asmx"/>
</Services>
</atlas:ScriptManager>
  增加HTML标志。个中按钮用来激发批量挪用,div用来显现挪用了局:
<inputid="invokeTasks"type="button"value="InvokeTaskCalls"/>
<divid="result"/>
  最初是JavaScript剧本,挪用WebService:
functioninvokeTasks_onclick()
{
//cleartheoutput
$(result).innerHTML=;

DoTask(1,2);
DoTask(1,1);
DoTask(2,0);
}
vartaskID=0;
functionDoTask(times,priority)
{
for(vari=0;i<times;++i)
{
SampleService.DoTask(
taskID++,
priority,
{onMethodComplete:OnComplete,priority:priority}
);
}
}
functionOnComplete(result)
{
$(result).innerHTML+=result+"<br/>";
}
  注重到DoTask()办法承受两个参数:times用来指定挪用次数,priority用来指定优先级,而且我们使用了一个全局的变量taskID用来保护一个自增的哀求按次。
  在这个示例中,我们起首挪用了一个低优先级的哀求,然后一其中优先级的,最初两个高优先级的。因为高优先级不介入批量挪用,以是您开始看到的是它们的前往:



  因为中低优先级的总数为2个,还没有到达5,以是在3000毫秒的延时事后才被发送:




  您能够修正invokeTasks_onclick()办法中的挪用按次和挪用数量,剖析批量挪用的完成体例。
c++是语言,其实C++和java的应用范围根本就不一样的。在java应用的领域内,c++是不合适的。所以微软才搞了C#和Java对抗。
作者: 小女巫    时间: 2015-1-19 08:25
同时也感谢博客园给我们这个平台,也感谢博客园的编辑们做成专题引来这么多高人指点。
作者: 精灵巫婆    时间: 2015-2-1 08:17
Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。
作者: 再现理想    时间: 2015-2-7 01:47
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。
作者: 海妖    时间: 2015-2-19 13:52
asp.net空间的支持有:ASP.NET1.1/虚拟目录/MicrosoftFrontPage2000扩展/CDONTS,同时他的网站上也提供了Asp.net的使用详解和程序源代码,相信对使用ASP.NET编程的程序员来说会非常有用哦!
作者: 灵魂腐蚀    时间: 2015-3-6 14:58
平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。
作者: 冷月葬花魂    时间: 2015-3-13 02:10
微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。
作者: 不帅    时间: 2015-3-20 10:23
ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。




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