博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
轻松掌握Ajax.net系列教程四:用Ajax.net实现客户端回调(Callback)
阅读量:7025 次
发布时间:2019-06-28

本文共 2064 字,大约阅读时间需要 6 分钟。

本章主要介绍怎样用Ajax.net实现Callback技术。大家都知道Callback技术是Asp.net 2.0的新技术,它是Ajax.net出来之前的一个过渡技术。使用它也能实现类似Ajax般的无刷新技术,但是由于使用比较麻烦,限制比较多,当Ajax.net框架出来之后Callback技术就被冷落了。但所有技术都有它存在的价值和意义,在某些时候,特别是小型数据传输的时候,使用Callback技术比用Ajax效率更高,而且在Ajax.net框架下使用Callback技术,页面不用继承ICallbackEventHandler接口,步骤也简单很多。现在在下就讲一下怎样在Ajax.net框架下使用Callback技术。

第一步:创建WebService

在Ajax.net框架下使用Callback技术需要用WebService作为数据传输的载体。我们先建立一个Asp.net Ajax-Enabled Web Site。然后添加一个新的WebService并命名为SimpleService.asmx。

然后我们写一个简单WebService,记得一定要加上System.Web.Script.Services.ScriptService属性,否则我们不能在客户端访问该WebService。

具体的代码如下图:

这是一个非常简单的WebService,在下只简单改了HelloWorld的代码。当我们运行该WebService,随便输入一个名字时,我们会得到“Hello,somenames”这样的一个反馈信息。

运行一下,如果可以看到以下效果,那么我们的SimpleService.asmx就完成了。

第二步:调用WebService

我们回到Default.aspx,由于我们建立的是Asp.net Ajax-Enabled Web Site,因此Default.aspx上已经自动生成了ScriptManager组件代码。我们要对它作一些修改,如下所示:

 <asp:ScriptManager ID="ScriptManager1" runat="server" >

        <Services>
        <asp:ServiceReference Path="SimpleService.asmx" />
        </Services>
</asp:ScriptManager>

加粗的地方要写正确WebService的文件名。

修改完ScriptManager的设置后,我们就可以开始编写JavaScript来callback这个WebService了。

我们先在设计界面里拖进一个HtmlInputText控件和一个HtmlInputButton控件,然后双击Button控件写代码。

具体代码如下:

<script language="javascript" type="text/javascript">
// <!CDATA[
function Button1_onclick() {
    ret = SimpleService.HelloWorld(document.getElementById('Text1').value, OnComplate, OnTimeOut, OnError);
    return true;
}
function OnComplate(arg)
{
    alert(arg);
}
function OnTimeOut(arg)
{
    alert("TimeOut!");
}
function OnError(arg)
{
    alert("eRROR!");
}
// ]]>
</script>

 函数OnComplate是成功调用完毕后客户端所执行的函数,OnTimeOut是当服务器响应超时后客户端所执行的函数,OnError就是当发生错误时客户端所执行的函数。

注意:在JavaScript中的SimpleService是SimpleService.asmx的类名,不是文件名。如果你更改了WebService的类名称,这里的名称是要跟着改变的,而ScriptManager中的SimpleService.asmx是文件名,这一点大家一定要分清楚。

OK,运行!

结束:

本章主要介绍了在Ajax.net框架下怎样使用Callback技术。与传统的Callback用法相比,在Ajax.net框架下的Callback的使用方法要更简单,而且效率也要比使用UpdatePanel高,当然功能就没有UpdatePanel那么丰富了。大家可以自行斟酌,选择适当的方法完善你的网站。另外本例子的WebService只使用了一个参数,假如有多个参数怎么办?这个就留给大家自行去尝试了,原理是差不多的,有问题可以留言给我。

如要下载视频请打开如下地址:

 

 

TrackBack:

转载于:https://www.cnblogs.com/hdjjun/archive/2008/06/17/1223648.html

你可能感兴趣的文章
C# 操作Word文本框——插入表格/读取表格/删除表格
查看>>
解决 Popup 位置不随窗口移动更新的问题
查看>>
常用单词7
查看>>
网页JS获取当前地理位置(省市区)
查看>>
Eclipse中开发环境也想把Tomcat 的默认BIO模式改为NIO模式
查看>>
装饰者模式
查看>>
关于密码学算法与数字证书相关的文章
查看>>
关于delphi中多线程采用定时器的做法
查看>>
Adobe Audition 3.0消除人声技巧二则
查看>>
linux下串口控制
查看>>
马尔科夫链简介
查看>>
VC++ 的MFC 和ATL 及COM 是什么?
查看>>
.NET泛型04,使用Lazy<T>实现延迟加载
查看>>
ASP.NET MVC中的Session以及处理方式
查看>>
想知道美国大学按计算机专业的排名,以及各大学在计算机哪个方面是强项,应该去哪里查找?...
查看>>
[C# 网络编程系列]专题六:UDP编程
查看>>
DNGuard 使用介绍
查看>>
HDU 4419 Colourful Rectangle(线段树)
查看>>
webservice接口的开发和调用
查看>>
Z-order curve
查看>>