一,再一次理解回调函数

(function($){

$.fn.shadow = function(opts){

//定义的默认的参数

var defaults = {

copies: 5,

opacity:0.1,

//回调函数

copyOffset:function(index){

return{x:index,y:index};

}

};

//将opts的内容合并到default中。

var options = $.extend(defaults,opts);

return this.each(function(){

var $originalElement = $(this);

//设置参数对象

for(var i=0;i

{

var offset = options.copyOffset(i);

$originalElement

.clone()

.css({

position:'absolute',

left:$originalElement.offset().left + offset.x,

top:$originalElement.offset().top + offset.y,

margin:0,

zIndex:-1,

//设置参数对象

opacity:options.opacity

})

.appendTo('body');

}

});

};

})(jQuery);

$(document).ready(function(){

$('h1').shadow({

copies:5,

39 copyOffset:function(index){

alert("我被执行了");

return {x:-index,y:-2 * index};

}

alert("先于copyOffset函数执行的");

});

});

在这里我们注意了

copyOffset:function(index){

return {x:-index,y:-2 * index};

}

就是一个回调函数,当代吗执行到

39行时,在这里并没有往return {x:-index,y:-2 * index};这行代码走,在这里只是一个赋值的过程,这时候代码会继续往下走,走到alert("先于copyOffset函数执行的");这一行的,至于什么时候执行alert("我被执行了");就是回调函数执行完了之后在执行的但是它一定是在  先于copyOffset函数执行的  之后执行的。

至于回调函数里面的执行规律请见

二,理解ajax

反面案例

$(document).ready(function(){

$('#txt').val('000000');//给文本框初始值

$('#btn01').bind('click',function(){

$.ajax({

type: "POST",

url: "/vumssmer/vmerservice!studyCallBack.do",

data:'',

success:function(msg){

console.log('msg.vflag:' + msg.vflag);

console.log('msg.vmsg:' + msg.vmsg);

$('#txt').val(msg.vflag);

outerdata = msg.vflag;

}

});

if (outerdata == 'true'){

console.log('文本框内容是:' + $('#txt').val());

console.log('公共变量的值是:' + outerdata);

console.log('yes');

}else{

console.log('文本框内容是:' + $('#txt').val());

console.log('公共变量的值是:' + outerdata);

console.log('no');

}

});

});

所谓的ajax就是异步的,它的定义是在不刷新页面的情况下,来动态的修改数据,或者说去查数据库,

这里最关键的就是ajax中应用了回调函数的原因,单代码走到 success:function(msg){}这一步的时候,存储的函数是不会被调用的,因为这只是一个赋值操作。就会直接跳过这个方法体里面的信息而,直接往下走,执行方法体外面的代码,

这时候当多线程执行完success:function(msg)会把值赋值到里面去的,至于什么时候执行完就要看ajax配置的url里面的代码处理量的大小了。

这样的好处有:

(1)可以让实现方,根据回调方的多种形态进行不同的处理和操作。(ASIHttpRequest)

(2)可以让实现方,根据自己的需要定制回调方的不同形态。(UITableView)

(3)可以将耗时的操作隐藏在回调方,不影响实现方其它信息的展示。

(4)让代码的逻辑更加集中,更加易读。

Ajax里的回调函数只是我们赋值给XMLHttpRequest对象的回调函数,它的执行和我们所写的调用ajax函数无关。

实际运用中如果我们想在执行完ajax请求后,根据请求结果执行相关的逻辑,那么请把逻辑写在ajax的回调函数里,只有这样才能让代码按业务逻辑正常运行。

所以通过上面的分析我们可以得出答案,当我们要用ajax返回的值时,一定要把处理的方法写在ajax方法里面来。而不是像上面的案例那样。

如果想详细的理解ajax和回调函数请见,

所以我们有时候可以看到当在前台打断点的时候,一旦碰到success:function(msg){}类似这种的情况断点就会直接跳过去的,假如在后台打断点的时间足够多的话就不会跳过去,一般情况下都会跳过去的,这就是回调函数的原因当执行到这一行的时候只是赋值的过程,而回调的函数还没有返回要求的值的,这时候就有点类似与多线程就会往下走的。

同样,我们也可以通过前台断点假如碰到一个函数就跳过去了,那它一定是回调函数。

js中回调函数(callback)的一些理解

前言 我个人在学习Node.js相关知识时遇到了回调函数这个概念,虽然之前已经在c,c++等编程语言中用到过它,但还一直未对其机制有深入了解,这次就来好好谈一下它. 概念理解 百度对它的解释是回调函数 ...

PHP 回调函数call_user_func和 call_user_func_array()的理解

call_user_func(function,param); // 第一个参数是回调函数的函数名,第二个参数是参数 call_user_func函数类似于一种特别的调用函数的方法.其主要有以下的类型 ...

ajax回调函数,全局变量赋值后,ajax外无法获取的解决

1 ajax回调函数内,function的执行与ajax外是异步的,常导致全局变量赋值后,再次使用此变量人无法获取. 所以,可以把需要的步骤,独立放在functuon中,在ajax回调函数中执行.可较 ...

理解和使用 JavaScript 中的回调函数

理解和使用 JavaScript 中的回调函数 标签: 回调函数指针js 2014-11-25 01:20 11506人阅读 评论(4) 收藏 举报  分类: JavaScript(4)    目录( ...

[转]理解与使用Javascript中的回调函数

在Javascript中,函数是第一类对象,这意味着函数可以像对象一样按照第一类管理被使用.既然函数实际上是对象:它们能被“存储”在变量中,能作为函数参数被传递,能在函数中被创建,能从函数中返回. 因 ...

【JavaScript】理解与使用Javascript中的回调函数

在Javascript中,函数是第一类对象,这意味着函数可以像对象一样按照第一类管理被使用.既然函数实际上是对象:它们能被“存储”在变量中,能作为函数参数被传递,能在函数中被创建,能从函数中返回. 因 ...

理解javascript中的回调函数(callback)【转】

在JavaScrip中,function是内置的类对象,也就是说它是一种类型的对象,可以和其它String.Array.Number.Object类的对象一样用于内置对象的管理.因为function实 ...

理解与使用Javascript中的回调函数

在Javascript中,函数是第一类对象,这意味着函数可以像对象一样按照第一类管理被使用.既然函数实际上是对象:它们能被“存储”在变量中,能作为函数参数被传递,能在函数中被创建,能从函数中返回. 因 ...

对c语言回调函数的理解

对于回调函数,可以简单的理解为一种特别的函数调用方法,我们可以对比一下回调函数与普通函数在调用方法上的区别. 1. 普通函数调用 一般为实现方在其函数体执行过程中直接调用. 代码示例: #includ ...

随机推荐

django ORM的外键操作

外键约束示例 #models操作如下 class HostInfo(models.Model): servername = models.CharField(max_length=) serverip ...

关于四则运算的代码debug测试

1.首先检测题目是否能为负数,0? 截图: 总结:如图所示出题数目为0的时候,并没提示重新输入,而是输出空白,而当输出题目为负数的时候系统提示错误,并且提示终止 2.检测操作值得范围:   总结:当操 ...

实现自己的MVC AJAX框架计划

最近看了一下设计自己框架的文章,所以也想自己去实现一个小框架,用于以后的项目中,只求方便, 需要参考各位前辈的代码,或者直接copy过来为我所用,哈哈,想想都开心. 不过,要写个好的框架肯定不容易,现 ...

yii2验证密码->手机号码短信发送>手机短信发送频繁问题

git相关知识(github,idea等的配置)

本地git提交文件到github上: 1.在github上创建项目 2.使用git clone https://github.com/xxxxxxx/xxxxx.git克隆到本地 3.编辑项目 4.g ...

Linux十字病毒查杀处理

之前处理过一次十字病毒,但未好好整理处理过程,现在转载一篇来自51cto的文章. 转自:http://blog.51cto.com/ixdba/2163018 十字符病毒,杀不死的小强,一次云服务器沦 ...

Node Koa2 完整教程

请移步 http://cnodejs.org/topic/58ac640e7872ea0864fedf90

static关键字的功能

转载:https://blog.csdn.net/guotianqing/article/details/79828100 C语言&C++ 1.局部变量 如果在一个函数内部定义了一个静态变量, ...

docker swarm英文文档学习-4-swarm模式如何运行

1)How nodes work Docker引擎1.12引入了集群模式,使你能够创建一个由一个或多个Docker引擎组成的集群,称为集群.集群由一个或多个节点组成:在群模式下运行Docker引擎1. ...

超星网站cc++

a系统 苏龙杰     a系统 苏龙杰     目录 1 C/C ++程序设计 1.1 前 言 1.2 第一部分 基 础 篇 1.2.1 第1章 初识C 1.2.1.1 1.1 C语言的诞生与发展 1 ...

回调函数举例ajax,通过回调函数的理解来进一步理解ajax及其注意的用法相关推荐

  1. ajax回调函数的返回值,使用ajax和回调函数向函数传递/返回值

    我试图读p_info函数返回从函数getproductInfo包含ajax调用,但我得到未定义的值.我使用回调函数来实现这一点,但仍然无法正常工作.我错在哪里?使用ajax和回调函数向函数传递/返回值 ...

  2. ajax 成功回调函数,jQuery的阿贾克斯成功回调函数定义jQuery的阿贾克斯成功回调函数定义(jQuery ajax...

    我想使用jQuery的ajax从服务器获取数据. 我希望把成功的回调函数定义外面.ajax()块像下面这样. 所以,我需要声明变量dataFromServer像下面这样我就能从成功回调使用返回的数据? ...

  3. 按照顺序执行异步ajax的回调函数

    //按顺序执行多个ajax命令,因为数量不定,所以采用递归 function send(action, arg2) {//将多个命令按顺序封装成数组对象,递归执行//利用了deferred对象控制回调 ...

  4. ajax五种回调函数,Ajax的回调函数

    一,为什么要使用回调函数? 首先我们应该明白我们为什么要用回调函数?我们用它能解决什么样的问题. function d(){} (function(){ (function(){ var temp = ...

  5. js中回调函数的理解 举例说明js回调函数

    初学js的时候,被回调函数搞得很晕,现在回过头来总结一下什么是回调函数. 我们先来看看回调的英文定义:A callback is a function that is passed as an arg ...

  6. ajax回调方法名使用什么事件,ajax的回调函数和匿名函数

    1.什么是js回调函数 一. 回调函数的作用 js代码会至上而下一条线执行下去,但是有时候我们需要等到一个操作结束之后再进行下一个操作,这时候就需要用到回调函数. 二. 回调函数的解释 因为函数实际上 ...

  7. spring返回数据使用ajax,【spring 后台跳转前台】使用ajax访问的后台,后台正常执行,返回数据,但是不能进入前台的ajax回调函数中...

    问题1: 使用ajax访问的后台,后台正常执行,并且正常返回数据,但是不能进入前台的ajax回调函数中 问题展示: 问题解决: 最后发现是因为后台的方法并未加注解:@ResponseBody,导致方法 ...

  8. Javascript(二)——函数(重载、回调)与作用域(附图解)

    文章目录 一.函数 1.1函数的本质 1.2创建函数 1) 声明方式 function 2) 赋值方式 3)new创建--几乎不用 4)ES5-create()方法 1.2 递归 1.3 重载函数 1 ...

  9. python函数闭包和递归_python函数基础3--闭包 + 递归 + 函数回调

    一.闭包 1. 函数嵌套 defouter():print("外层函数")definner():print("内层函数")returninner() outer ...

最新文章

  1. 2021-2027年中国手机结构件行业投资分析及发展战略研究咨询报告
  2. JavaScript 音频处理库 pico.js
  3. c语言循环与数组训练题,C语言循环数组练习题解读.doc
  4. 公用机房计算机主板选购,才知道,IDC机房运维工作居然可以如此简单!
  5. 前端学习(648):转换为boolean
  6. 13个超棒的代码资源网站推荐
  7. Eclipse创建资源文件
  8. Entity Framework Configuring Relationships with the Fluent API
  9. Visual Studio各组件说明
  10. 自定义微信小程序弹框
  11. 110KV降压变电所电气一次部分及防雷保护设计
  12. 对话微软大中华区CEO梁念坚:WP7为云而生
  13. mysql 从删库到跑路
  14. 很多事情看似很完美,一不小心就成了杯具~
  15. PHP智云全能API接口源码V1.3
  16. python车牌识别使用训练集_基于Python 实现的车牌识别项目
  17. SQL查询结果加序列号
  18. 在线YAML转Properties工具
  19. 如何用Matlab进行曲线拟合
  20. 将字符串写入文件的五种方法

热门文章

  1. 最新版akamai2.0逆向分析爬虫破盾风控绕过tls指纹
  2. AlexNet实现花卉识别
  3. 【BZOJ4755】 [Jsoi2016]扭动的回文串
  4. 简单100行代码一页完成(表白代码-爱心跳动)
  5. 破壳——小鸟初识linux
  6. 高赞的6款办公神器,好用到飞起
  7. 2021acm-icpc区域赛(南京)补题笔记
  8. 全面理解 Unity UI 系统
  9. python正则表达式试题_正则表达式练习题
  10. 学习少儿编程有什么好处呢?