仓酷云

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

[学习教程] ASP.NET编程:.net 下用javascript挪用webservice

[复制链接]
萌萌妈妈 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:31:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
你可以先看看这篇文章(软微学院生涯-三朝元老经验谈),打不开再跟我说。(我的意思是想让她自己先稍微了解一下到底现在各个方向学的工具以及以后要做的工具大概是什么,因为喜欢做什么样的事其实自己最清楚的)javascript|web  .net下用javascript挪用webservice的话,要用到webservicebehavior。上面以一个例子解说之,对照复杂
1、起首,要创立一个webservice,好比
<%@WebServiceLanguage="C#"class=MyMath%>
usingSystem;
usingSystem.Web.Services;
publicclassMyMath{
[WebMethod]
publicintadd(inta,intb)
{
returna+b;
}
[WebMethod]
publicintsubtract(inta,intb)
{
returna-b;
}
}
  然后公布,先失掉其wsdl。
  2、起首,我们要下载webbehavior.htc这个文件(能够到http://msdn.microsoft.com/downloads/samples/internet/behaviors/library/webservice/default.asp.)
往下载,然后放到你的web以后目次下然后在要挪用webserice的页面中,修正以下
<body>
<divid="addservice"style="behavior:url(webservice.htc)"></div>
</body>
  这里我们将divid定名为成心义的称号,而且指定style为webservice举动。接着,我们要誊写javascript来挪用webserice了:
  起首,我们在javascript中,挪用其wsdladdservice.useService("http://localhost/services/math.asmx?WSDL","MyMath");利用id.useService(WSDLL路径,复杂的定名体例);
  我们之前设定的id是addservice,而为了给客户端挪用便利,我们这里起了称号,叫MyMath。而为了包管能准确挪用webserice,必需在body里的onload事务里,即刻加载处置webservice挪用的javascript,以下
<scriptlanguage="JavaScript">
functioninit()
{
addservice.useService("http://localhost/services/math.asmx?WSDL","MyMath");}
</script>
<body>
<divid="service"style="behavior:url(webservice.htc)">
</div>
</body>
  在下面,我们经由过程webservice举动,起首失掉了前往webservice的wsdl,接上去我们要举行挪用了,挪用的格局以下:iCallID=id.FriendlyName.callService([CallbackHandler,]"MethodName",Param1,Param2,...);
  这里id是我们在div里设置的id,而FridndbyName是我们方才为方面而起的命,这里就是MyMath了,而CallbackHandler是利用回调函数的历程名,假如无设置的话,则默许是利用onresult所挪用的办法来举行处置,下文会讲到,而param1,,param2等则是说传进的参数了,如:
<SCRIPTlanguage="JavaScript">
//Allthesevariablesmustbeglobal,
//becausetheyareusedinbothinit()andonresult().
variCallID=0;
varintA=5;
varintB=6;
functioninit()
{
//Establishthefriendlyname"MyMath"fortheWebServiceURL
service.useService("/services/math.asmx?WSDL","MyMath");
//Thefollowingmethoddoesntspecifyacallbackhandler,soonWSresult()isused
iCallID=service.MyMath.callService("add",intA,intB);
}
functiononWSresult()
{
//ifthereisanerror,andthecallcamefromthecall()ininit()
if((event.result.error)&&(iCallID==event.result.id))
{
//Pulltheerrorinformationfromtheevent.result.errorDetailproperties
varxfaultcode=event.result.errorDetail.code;
varxfaultstring=event.result.errorDetail.string;
varxfaultsoap=event.result.errorDetail.raw;
//Addcodetohandlespecificerrorcodeshere
}
//iftherewasnoerror,andthecallcamefromthecall()ininit()
elseif((!event.result.error)&&(iCallID==event.result.id))
{
//Showthearithmetic!
alert(intA+++intB+=+event.result.value);
}
else
{
alert("Somethingelsefiredtheevent!");
}
}
</SCRIPT>
<body>
<divid="service"style="behavior:url(webservice.htc)"onresult="onWSresult()">
</div>
</body>
  注重,用onresult体例前往的话,要在div部分的onresult中指定处置的办法,这里是用onWsresult()办法,个中依据前往的信息来判别是不是堕落,堕落的话则显现。
  假如用回调的话,则以下处置
<SCRIPTlanguage="JavaScript">
//Allthesevariablesmustbeglobal,
//becausetheyareusedinbothinit()andonResult().
variCallID=0;
varintA=5;
varintB=6;
functioninit()
{
//Establishthefriendlyname"MyMath"fortheWebServiceURL
service.useService("/services/math.asmx?WSDL","MyMath");
//Thefollowingusesacallbackhandlernamed"mathResults"
iCallID=service.MyMath.callService(mathResults,"add",intA,intB);
}
functionmathResults(result)
{
//ifthereisanerror,andthecallcamefromthecall()ininit()
if(result.error)
{
//Pulltheerrorinformationfromtheevent.result.errorDetailproperties
varxfaultcode=result.errorDetail.code;
varxfaultstring=result.errorDetail.string;
varxfaultsoap=result.errorDetail.raw;
//Addcodetohandlespecificerrorcodeshere
}
//iftherewasnoerror
else
{
//Showthearithmetic
alert(intA+++intB+"="+result.value);
}
}
</SCRIPT>
<body>
<divid="service"style="behavior:url(webservice.htc)">
</div>
</body>
实不相瞒,Java是我见过的执行效率最低的程序设计语言,前不久在CSDN论坛上有个评测,计算9999的阶乘,同样的循环算法,Java的耗时是.NET的5倍。
若天明 该用户已被删除
沙发
发表于 2015-1-24 14:01:22 | 只看该作者
可以看作是VC和Java的混合体吧,尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性。
海妖 该用户已被删除
板凳
发表于 2015-2-1 16:31:38 | 只看该作者
众所周知,Windows以易用而出名,也因此占据不少的服务器市场。
莫相离 该用户已被删除
地板
发表于 2015-2-7 08:48:23 | 只看该作者
在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的
小妖女 该用户已被删除
5#
发表于 2015-2-21 10:32:58 | 只看该作者
CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。
柔情似水 该用户已被删除
6#
发表于 2015-3-6 20:07:49 | 只看该作者
众所周知,Windows以易用而出名,也因此占据不少的服务器市场。
冷月葬花魂 该用户已被删除
7#
发表于 2015-3-13 08:08:35 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。
深爱那片海 该用户已被删除
8#
发表于 2015-3-13 08:08:35 | 只看该作者
在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗?
精灵巫婆 该用户已被删除
9#
发表于 2015-3-20 17:05:57 | 只看该作者
现在的ASP.net分为两个版本:1.1和2.0Asp.net1.1用VS2003(visualstudio2003)编程。Asp.net2.0用VS2005(visualstudio2005)编程。现在一般开发用的是VS2003。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-24 01:30

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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