ajax中回调函数什么时候会执行,c#中的回调函数什么时候会执行?

这么久都没人来回答你这个问题,我来抛个砖。

首先得搞清楚为什么要用回调函数——这个问题用 Baidu 搜索一下,结果一堆一堆的。

一般情况下回调是用在异步处理上,比如说,你向服务器发起一个请求,由于网络比较慢,采用同步代码的话,界面就是假死在那里一直等服务器返回数据,为了避免这个问题,就做异步,但是如果用异步,怎么能知道服务器把数据返回回来了,然后立即处理数据呢?如果说写个循环同步等待,那跟没做异步一样,最好的办法就丢个算法给异步处理过程,让它在得到数据之后执行这个算法——算法靠什么实现?函数!

当然,架设不是专门为异步设计的,只要需要传递算法的地方就可以用回调,比如 C# 中的事件处理就是一种回调方式,Java中的 Listener 对象,虽然不是传递的函数,但实质仍然是回调。

既然你提到了 javascript,那不妨用 jQuery 的 ajax 来举个例

javascript$button.disable();

$.getJSON(aUrl, data).done(function(data) {

console.log("success with data", data);

}).fail(function() {

console.log("fail");

}).always(function() {

$button.enable();

})

这段代码并不完整,所以只能作示例,不能运行。假充它在某个按钮 ($button) 按下时调用,它模拟了这样一个过程:

为了避免重复提交,禁止了按钮,然后进行远程请求。这个时候界面仍然是可以进行其它操作。

在进行远程请求的时候,配置了3个回调函数,分别在执行成功执行,执行失败执行,和不管成功失败都执行。

成功执行的回调带1个参数,就是取回的数据;失败执行的回调不带参数(实际可以带3个参数,具体参考 jQuery 文档);但不管成功失败,最后都需要把按钮再变为可用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值