轻松掌握Ajax.net系列教程四:用Ajax.net实现客户端回调(Callback)
2009-08-07 11:03
549 查看
主要介绍怎样用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。
具体的代码如下图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/14/37c23d1eb73383fd9da31516ace0f6d7.jpg)
这是一个非常简单的WebService,在下只简单改了HelloWorld的代码。当我们运行该WebService,随便输入一个名字时,我们会得到“Hello,somenames”这样的一个反馈信息。
运行一下,如果可以看到以下效果,那么我们的SimpleService.asmx就完成了。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/14/b2ebe5e661ee7e465928cea92b78603f.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/14/9f5075b83140bb2862af2fd484bd9f25.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/14/f8685c229c54403e9185b40b408e1ed2.jpg)
第二步:调用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,运行!
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/14/14cfd5c494dbe41490d3a4faee1cd88a.jpg)
结束:
本章主要介绍了在Ajax.net框架下怎样使用Callback技术。与传统的Callback用法相
比,在Ajax.net框架下的Callback的使用方法要更简单,而且效率也要比使用UpdatePanel高,当然功能就没有
UpdatePanel那么丰富了。大家可以自行斟酌,选择适当的方法完善你的网站。另外本例子的WebService只使用了一个参数,假如有多个参数
怎么办?这个就留给大家自行去尝试了,原理是差不多的,有问题可以留言给我。
如要下载视频请打开如下地址:http://www.asp.net/learn/videos/view.aspx?tabid=63&id=79
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。
具体的代码如下图:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/14/37c23d1eb73383fd9da31516ace0f6d7.jpg)
这是一个非常简单的WebService,在下只简单改了HelloWorld的代码。当我们运行该WebService,随便输入一个名字时,我们会得到“Hello,somenames”这样的一个反馈信息。
运行一下,如果可以看到以下效果,那么我们的SimpleService.asmx就完成了。
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/14/b2ebe5e661ee7e465928cea92b78603f.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/14/9f5075b83140bb2862af2fd484bd9f25.jpg)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/14/f8685c229c54403e9185b40b408e1ed2.jpg)
第二步:调用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,运行!
![](https://oscdn.geek-share.com/Uploads/Images/Content/201912/14/14cfd5c494dbe41490d3a4faee1cd88a.jpg)
结束:
本章主要介绍了在Ajax.net框架下怎样使用Callback技术。与传统的Callback用法相
比,在Ajax.net框架下的Callback的使用方法要更简单,而且效率也要比使用UpdatePanel高,当然功能就没有
UpdatePanel那么丰富了。大家可以自行斟酌,选择适当的方法完善你的网站。另外本例子的WebService只使用了一个参数,假如有多个参数
怎么办?这个就留给大家自行去尝试了,原理是差不多的,有问题可以留言给我。
如要下载视频请打开如下地址:http://www.asp.net/learn/videos/view.aspx?tabid=63&id=79
相关文章推荐
- [转]轻松掌握Ajax.net系列教程四:用Ajax.net实现客户端回调(Callback)
- 轻松掌握Ajax.net系列教程四:用Ajax.net实现客户端回调(Callback)
- 轻松掌握Ajax.net系列教程四:用Ajax.net实现客户端回调(Callback)
- 轻松掌握Ajax.net系列教程四:用Ajax.net实现客户端回调(Callback)
- 轻松掌握Ajax.net系列教程四:用Ajax.net实现客户端回调(Callback)
- 轻松掌握Ajax.net系列教程二:部署Ajax Control Toolkit
- 轻松掌握Ajax.net系列教程一:部署AJAX.NET
- 轻松掌握Ajax.net系列教程五:使用TextBoxWatermarkExtender
- 轻松掌握Ajax.net系列教程九:使用Accordion
- 轻松掌握Ajax.net系列教程十四:使用CalendarExtender
- 轻松掌握Ajax.net系列教程
- [转]轻松掌握Ajax.net系列教程十一:使用DynamicPopulateExtender
- 轻松掌握Ajax.net系列教程五:使用TextBoxWatermarkExtender
- 轻松掌握Ajax.net系列教程十三:使用HoverMenuExtender
- 轻松掌握Ajax.net系列教程一:部署AJAX.NET
- 轻松掌握Ajax.net系列教程三:使用CascadingDropDown组件
- 轻松掌握Ajax.net系列教程九:使用Accordion
- 轻松掌握Ajax.net系列教程十四:使用CalendarExtender
- 轻松掌握Ajax.net系列教程一:部署AJAX.NET
- 轻松掌握Ajax.net系列教程一:部署AJAX.NET