callback回调函数
来源:互联网 发布:iphone丢失后抹掉数据 编辑:程序博客网 时间:2024/05/21 22:30
在使用开源项目的时候经常会使用到回调函数,如果把回调函数弄清楚了,那么对我们深入了解开源项目会有很大帮助。
回调函数百度百科的解释:
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。
看上去不是那么容易理解,我们来看个例子(知乎):
这样好理解多了吧,当店员被创建出来的时候,并不知道有谁会来商店里买东西,店员需要和很多不同的对象打交道,需要适配不同类型的对象,这个时候就需要回调函数了。
我们通过一个事例来理解一下回调函数的运用场景:
Me需要完成一个任务,计算1+1=?
Me如果要自己完成这个任务
<div class="imgDiv"> <div class="search"> <input class="put" type="text" id="keyWord"/> <ul id="tipList"></ul></div>
(function (){ $(function(){ $("#keyWord").on("keyup",function(event){ var keyCode = event.keyCode; if(keyCode == 38|| keyCode ==40){ settingTipList(keyCode); return false; } var keyWord = $(this).val(); getTipList(keyWord); }); var index = -1; function settingTipList(keyCode){ if(keyCode == 38){ index--; }else{ index++; } var size = $("#tipList li").size(); index =index % size; $("#tipList li").removeClass("active").eq(index).addClass("active"); var selectLiContent = $("#tipList li").eq(index).html(); $("#keyWord").val(selectLiContent); }; //获取数据 function getTipList(keyWord){ var url = "https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su"; var data = { wd:keyWord, cb:"hhh" }; $.ajax({ url:url, data:data, type:"GET", dataType:"jsonp", jsonpCallback:"hhh", success:function(data){ var tipList = data.s; handleData(tipList) }, error:function(error){ alert("接口出错") } }); } }); function handleData(tipList){ var tipHTML= ""; for(var i in tipList){ var text = tipList[i]; tipHTML += "<li>"+text+"</li>" } $("#tipList").css({"opacity":"1"}); $("#tipList").html(tipHTML); }})()//如果不写jsonpCallback、后面jsonpCallback“”空置、直接跳出“接口出错了。
注意:
1.使用ajax进行 JSONP跨域请求,因为被请求的对方的回调函数名称是无法修改。而这边页面中会出现多个不同JSONP请求,但他们的回调函数名
称都是同一个,_Callback。想到设置AJAX 的JSONP参数。但是发现根本不起作用。最后偶然发现 jsonpcallback是区分大小写的。是 jsonpCallback
而不是jsonpcallback;
2.JSONP 是构建 mashup 的强大技术,但不幸的是,它并不是所有跨域通信需求的万灵药。它有一些缺陷,在提交开发资源之前必须认真考虑它
们。第一,也是最重要的一点,没有关于 JSONP 调用的错误处理。如果动态脚本插入有效,就执行调用;如果无效,就静
默失败。失败是没有任何提示的。例如,不能从服务器捕捉
到 404 错误,也不能取消或重新开始请求。不过,等待一段时间还没有响应的话,就不用理它了。(未来的 jQuery 版本可能有终止 JSONP 请求的特
性)JSONP 的另一个主要缺陷是被不信任的服务使用时会很危险。因为 JSONP 服务返回打包在函数调用中的 JSON 响应,而函数调用是由浏览器执
行的,这使宿主 Web 应用程序更容易受到各类攻击。如果打算使用 JSONP 服务,了解能造成的威胁非常重要。
- CALLBACK回调函数
- CallBack 回调函数
- CALLBACK回调函数
- 回调函数 callback
- Callback回调函数
- 回调函数 CALLBACK
- 回调函数CALLBACK
- 回调函数callback
- 回调函数CALLBACK
- 回调函数callback
- 回调函数callback()
- callback 回调函数
- callback回调函数
- 回调函数(CallBack)
- 关于callback回调函数
- 回调函数(Callback Function)
- 什么是回调函数(callback)
- 什么是回调函数(callback)
- python--两个list 求交\并\差集
- 找出数组中第一个重复的元素
- Centos7免密登陆配置
- xjoi奋斗群群赛2
- xxxxxxx模拟(1/?)暂时不写了
- callback回调函数
- poj 2411 Mondriaan's Dream (状态dp)
- 中国电子商务需要什么样的风控系统
- Android问题:真机运行程序报错:com.android.ddmlib.AdbCommandRejectedException: device unauthorized. This adb ser
- Linux系统(Centos)下安装nodejs并配置环境
- 再谈java乱码:GBK和UTF-8互转尾部乱码问题分析
- poj 1038 Bugs Integrated, Inc. __dp状态压缩
- 正则表达式
- JAVA Lang包下常用的工具类