在园子里看到关于Ajax调用WebService文章不再少数,也写了几个调用的实例,过两天来看感觉理不清思路,今天加以小结:

WebService没有什么用户界面,只对外公开调用的方法,专注业务逻辑的实现,这恰好和ASP.NET AJAX客户端编程模型所倡导的“将表现层和业务逻辑层彻底分开”的理念不谋而合。

微软的Ajax框架用来处理客户端的用户界面,实现于用户的具体交互,而服务器端只关心数据的处理,而无需理会客户端表现样式的变化。Ajax本身的异步通信层所自动生成的Web Service客户端访问代理,WebService同样也可以借用。

做出一个实例如下:业务需求—在界面的文本框中输入用户名,调用服务器端的WebService中方法返回服务器端的时间并问候该用户.显示在界面上:

输入chenkaige后显示客户端的结果:

调用的WebService代码如下:

其中在WebService中编写代码前必须要导入System.Web.Script.Services空间支持,同时类前加上[ScriptService]的特性(为了生成客户端调用代理)

  1. using System;
  2. using System.Web;
  3. using System.Collections;
  4. using System.Web.Services;
  5. using System.Web.Services.Protocols;
  6. using System.Web.Script;
  7. using System.Web.Script.Services;
  8. /** <summary>
  9. /// 新建一个WebService用来实现通过Ajax的特殊异步通信层来调用该自定义方法
  10. /// Author:chenkai    Timer:2009年1月27日23:01:35  Document: A simple Demo
  11. /// </summary>
  12. [WebService(Namespace = "http://tempuri.org/")]
  13. [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
  14. [ScriptService]//为了Asp.NET Ajax生成WebService客户端调用代理  进而允许我们再javascript中调用WebService中自定义方法
  15. public class WebService : System.Web.Services.WebService {
  16. public WebService () {
  17. //如果使用设计的组件,请取消注释以下行
  18. //InitializeComponent();
  19. }
  20. /** <summary>
  21. /// 自定义一个Webservice方法实现 返回一个重新拼接的字符串
  22. /// </summary>
  23. /// <param name="clintname">客户端字符窜</param>
  24. /// <returns>服务端修改后的字符串</returns>
  25. [WebMethod]
  26. public string ClintSayHello(string clintname)
  27. {
  28. return DateTime.Now.ToString() + "Good Night!" + clintname;
  29. }
  30. }

客户端调用代码:

  1. --调用WebService的JavaScript
  2. <script type="text/javascript">
  3. //自定义通过javaScript调用服务器端的WebService中的自定义方法
  4. function ScriptFunction()
  5. {
  6. //获得文本框中输入的ClintName
  7. var getname=document.getElementById("clintname").value;
  8. alert(getname);
  9. //开始调用Webservice同时还调用一个客户端自定义的回调函数
  10. //调用语法是[NameSpace].[ClassName].[MethodName](param1, param2 …, callbackFunction)
  11. WebService.ClintSayHello(getname,CallBackFun);
  12. }
  13. //自定义一个回调函数
  14. //该回调函数将在服务器端异步调用成功返回后由ASP.NET AJAX异步通讯层自动调用
  15. //回调函数的result参数代表了本次异步调用的返回结果—即调用WebService自定义方法返回结果
  16. //其result参数也会由ASP.NET AJAX异步通讯层传递进来,无需任何手工控制
  17. function CallBackFun(result)
  18. {
  19. document.getElementById("DispayResult").innerHTML="<B>"+result+"</B>";
  20. alert("Sucess To Transfer Server WebService!");
  21. }
  22. </script>
  23. --页面代码:
  24. <asp:ScriptManager ID="ScriptManager1" runat="server">
  25. <Services>
  26. <asp:ServiceReference Path="WebService.asmx" />
  27. </Services>
  28. </asp:ScriptManager>
  29. <b>///通过Asp.net Ajax框架再客户端调用WebService中方法
  30. <br />
  31. ///Author:chenkai  Timer:2009年1月27日23:52:45</b>
  32. <div>
  33. InputClintName:<input type="text" id="clintname" />
  34. <input type="button" id="ClintBtnClick" onclick="return ScriptFunction()" value="SendToClint"/>
  35. </div>
  36. --div层用来显示结果
  37. <div id="DispayResult"></div>

微软Ajax框架中调用WebService的具体步骤如下:

(1)WebService类中导入System.Web.Script.Services命名空间,并在类前添加[ScriptService]属性或者将Web Service类或需要暴露给客户端的Web Service方法添加[ScriptService]属性-根据需要来设定
(2)在页面中的ScriptManager控件中添加对该Web Service的引用
    
(3)在客户端使用如下JavaScript语法调用该Web Service:[NameSpace].[ClassName].[MethodName](param1, param2 ......, callbackFunction)

(4)为客户端异步调用指定回调函数,在回调函数中接收返回值并进一步处理

本文转自chenkaiunion 51CTO博客,原文链接:http://blog.51cto.com/chenkai/765474

在微软Ajax框架中异步调用WebService(JavaiScript中调用)相关推荐

  1. HttpURLConnection调用webservice,HTTP调用webservice,简单的webservice调用

    以前调用webservice一般使用axis.axis2先生成java类后,直接引用,多方便.但是有的webservice接口非常的函数,生成的java类非常多,有没有一种非常简化的方法. axis2 ...

  2. cmd 调用webservice接口_C++ 调用 Webservice gSoap 方法

    大体思路是:使用gsoap生成文件,把生成的相关文件均加载到项目中调用 本文以调用天气的webservice为例子,手把手教你. 步骤一 准备gSOAP工具:将gsoap_2.8.100.zip解压, ...

  3. java axis2 调用webservice 接口_Axis2 调用Webservice 接口 | 学步园

    调用方法: TranslatorString  输入中文,翻译成 拼音.英文. 参数:wordKey(中文) 现在要做,翻译词:[随便],代码如下: package cn.com.webxml; im ...

  4. Asp.net Ajax框架教程

    目录 (一).概述... (二).应用场景代码示例... 1).ScriptManager控件示例...     1. 在异步调用服务端注册客户端脚本新方法...     2. 捕获Ajax异步调用中 ...

  5. Asp.net Ajax框架教程[教程下载]

    Asp.net Ajax 框架教程 目录 (一).概述... (二).应用场景代码示例... 1).ScriptManager控件示例...      1. 在异步调用服务端注册客户端脚本新方法... ...

  6. 多次使用axis2调用webservice后,报连接超时错误

        使用Axis2d的RPCServiceClient调用webservice,连续调用几次web服务后,后台报错,如下所示: org.apache.commons.httpclient.Conn ...

  7. vue 调用webservice_动态调用WebService接口的几种方式

    一.什么是WebService? 这里就不再赘述了,想要了解的====>传送门 二.为什么要动态调用WebService接口? 一般在C#开发中调用webService服务中的接口都是通过引用过 ...

  8. SpringBoot集成Axis2,部署webservice接口并调用

    SpringBoot集成Axis2,部署webservice接口并调用 一.省略新建springboot项目过程 1.pom.xml 2.application.yml 3.准备工作做完,编写serv ...

  9. WebForm使用HttpWebRequest 调用webservice返回json

    WebForm使用HttpWebRequest 调用webservice返回json 调用webservice部分:返回的是json 调用webservice部分:返回的是json public st ...

  10. asp.net中异步调用WebService(异步页)[转]

    由于asp2.0提供了异步页的支持使异步调用WebService的性能有了真正的提升. 使用异步页,首先要设置Async="true",异步页是在Prerender和Prerend ...

最新文章

  1. 如何做会员排名 按照投稿文章数量
  2. USB相关结构体之struct usb_device
  3. 红黑树效率为甚恶魔是log_一文带你彻底读懂红黑树(附详细图解)
  4. pc构件生产线及设备_PC构件成组立模生产线
  5. java jar log4j_使用Log4j
  6. 移动硬盘无法弹出的问题
  7. 边工作边刷题:70天一遍leetcode: day 11-1
  8. (58)FPGA面试题-只使用双输入NAND门,设计了一个四输入NAND门
  9. NOI Online能力测试2视频版,让我们看看出题专家怎么说!(入门组)
  10. 学python能做什么-学习python后能做哪方面的工作
  11. java 将数据加载到内存中
  12. bat调用vbs脚本
  13. sz命令获取文件到本地路径设置
  14. 源文件如何一步步到可执行程序【程序员必修课】
  15. C语言 吃鱼还是吃肉
  16. 昆山python线下培训班,苏州昆山有没有python培训班(会python的好处)
  17. 接近618,浅谈“猫爪杯”,“优衣库”背后的饥饿营销套路
  18. 低代码平台的分类及选择参考
  19. 网络编程2(TCP、UDP)
  20. Kaggle命令行上传预测csv文件(Mac端)

热门文章

  1. css中用于设置首行文本缩进的属性是,css中设置段落缩进的属性是什么
  2. 第一节:Create React App
  3. ajaxfileupload 返回值_Ajaxfileupload 上传文件后返回response的contentType错误问题
  4. abp框架启动自动指向swagger界面
  5. 腾讯云对象存储(cos) js jdk上传文件
  6. linux 管道 线程,linux中通过管道实现qq的聊天功能,用到了线程
  7. 柳氏管理学:自己不会,就要勤做笔记
  8. LINUX编译sofia-sip
  9. LINUX下载编译libxml2
  10. undefined reference to `swr_init+