jquery Ajax

$ajax({

Url:”test.html”,-----发送请求的地址

Async:true;------异步操作

Cache:true,-----可以从缓冲中加载

Type:”GET”,------请求方法

Datatype:”json”,-------服务器返回数据类型

Sucess:function(data){ ----------调用成功语句

If(data==”OK”){

Console.log(data);

}

},

error:function(data){-----------------------(error:function(XMLHttpRequest, textStatus)失败语句

If(data==”OK”){

Console.log(data);

}

},

complete:function(data){--------------结束语句

If(data==”OK”){

Console.log(data);

}

},

})

$.get(

Url:”test.html”,{name:”xsx”,age:”19”},function(data){

Console.log(data);

})

$.post(

Url:”rest.xml”,{uname:”xsx”,age:”20”},function(data){

If(data==”OK”){

Console.log(data);

}

})

Jquery Deferred(jquery promis)

$.Deferred()返回一个对象,我们可以称之为Deferred对象,上面挂着一些熟悉的方法如:done、fail、then等。jquery就是用这个Deferred对象来注册异步操作的回调函数,修改并传递异步操作的状态。

有一个弊端,因为执行runAsync()可以拿到def对象,而def对象上又有resol方法,可以在外部进行修改,回调函数会停止。

jquery提供了一个promise方法,就在def对象上,他可以返回一个受限的Deferred对象,所谓受限就是没有resolve、reject等方法,无法从外部来改变他的状态

Function run(){

Var def=$.Deferred();

setTimeout(function(){

Console.log(“执行完成”);

def.resolve=”随便什么都行”;

},2000);

Return def.promise();

}

run.done(function(){

console.log(“执行成功”)

})

.fail(function(){

Console.log(“函数失败”);

})

$when方法

jquery中,还有一个$.when方法来实现Promise,与ES6中的all方法功能一样,并行执行异步操作,在所有的异步操作执行完后才执行回调函数。不过$.when并没有定义在$.Deferred中,看名字就知道,$.when,它是一个单独的方法。与ES6的all的参数稍有区别,它接受的并不是数组,而是多个Deferred对象

$.when(runAsync(), runAsync2(), runAsync3())

.then(function(data1, data2, data3){

console.log('全部执行完成');

console.log(data1, data2, data3);

});

总结一下就是:$.Deferred实现了Promise规范,then、done、fail、always是Deferred对象的方法。$.when是一个全局的方法,用来并行运行多个异步任务,与ES6的all是一个功能。ajax返回一个Deferred对象,success、error、complete是ajax提供的语法糖,功能与Deferred对象的done、fail、always一致。就酱。

参考网址:http://www.cnblogs.com/lvdabao/p/jquery-deferred.html

http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html

转载于:https://www.cnblogs.com/xieshuxin/p/6705715.html

web面试常见问题补充相关推荐

  1. python面试常见问题-Python面试常见问题,涉及Python各个方面

    原标题:Python面试常见问题,涉及Python各个方面 爬虫面试常见问题 一.项目问题: 1.你写爬虫的时候都遇到过什么反爬虫措施,你是怎样解决的 2.用的什么框架.为什么选择这个框架 二.框架问 ...

  2. 网路学员面试常见问题:

    网路学员面试常见问题: 1.请你修改一下LINUX的视频驱动和声音驱动 答: redhatlinux中用sndconfig来设置声卡,如果没有某个模块,就需要重新编译内核(编译最新发布的linux 内 ...

  3. html手机端适配怎么调试,html5面试常见问题及答案:移动端布局与适配篇

    原标题:html5面试常见问题及答案:移动端布局与适配篇 1. 移动布局自适应不同屏幕的几种方式 (1)响应式布局 (2)100%布局(弹性布局) (3)等比缩放布局(rem) 2. iscroll安 ...

  4. linux调整网页视频声音,网络学员面试常见问题请你修改一下LINUX的视频驱动和声音.DOC...

    网络学员面试常见问题请你修改一下LINUX的视频驱动和声音 网络学员面试常见问题: 1.请你修改一下LINUX的视频驱动和声音驱动 答: redhatlinux中用sndconfig来设置声卡,如果没 ...

  5. Web 面试之 HTTP和浏览器

    Web 面试之 HTTP和浏览器 前言 一.HTTP 1.说说网络分层模型? 2.HTTP 常见的状态码有哪些? 2.HTTP 常见的 header 有哪些? 3.什么是 Restful API? 4 ...

  6. 数字集成电路面试常见问题_关于空间级集成电路的常见误解

    数字集成电路面试常见问题 对集成电路辐射硬度的常见误解 (Common misconceptions on the radiation hardness of integrated circuits) ...

  7. HUNER翻译软件测试面试题,外企测试面试常见问题及回答(英文)

    <外企测试面试常见问题及回答(英文)>由会员分享,可在线阅读,更多相关<外企测试面试常见问题及回答(英文)(5页珍藏版)>请在人人文库网上搜索. 1.外企测试面试常见问题及回答 ...

  8. Web 面试之 JavaScript

    Web面试之 JavaScript 前言 一.变量类型和计算 1.JS 数据类型有哪些?存储上的区别? 2.值类型和引用类型区别? 3.null 和 undefined 的区别? 4.NaN 是什么的 ...

  9. 中职计算机平面设计教师考试面试,中职教师面试常见问题

    中职教师面试常见问题 在中职教师面试中如何更好的突出自己呢?中职教师面试会问哪些问题?以下是小编为你整理的中职教师面试常见问题,希望能帮到你. 中职教师面试常见问题 1.学生记忆有什么特点?学科教学如 ...

最新文章

  1. 三阶魔方还原步骤图_(六)最简单的三阶魔方入门教程——顶面还原
  2. 02-UILabel比例颜色填充之歌词效果实现
  3. linux安装openssh 密码错误,Linux安装openssh的后门补丁
  4. 【Attention】Visual Attention Network
  5. DIV Scroll属性
  6. Linux ls常见的命令选项【转载】
  7. EntboostChat 0.9(越狱版)公布,iOS免费企业IM
  8. 《精通LabVIEW虚拟仪器程序设计与案例实现》一2.1 LabVIEW安装
  9. python 根据父子信息 还原成json树
  10. 软件工程——瀑布模型、快速原型模型、增量模型、螺旋模型
  11. 微信小程序实时音视频功能简析(live-pusher与live-player)
  12. 雷达篇(十) dB和dBm的意义,功率W和dBm之间的换算
  13. 逆发动机模型map图制作
  14. Mac软件最全的下载网站top10
  15. 硬件基本概念-模拟电子电路
  16. 实现营业执照注册号校验
  17. 泰坦尼克号乘客获救预测
  18. 关于重装系统后部分文件呈绿色的原因
  19. php做到聊天发图片,网页聊天框发送表情图片实现方法
  20. @Autowired vs @PersistenceContext for EntityManager bean

热门文章

  1. ibatis mysql 同时删多个表报错_MySQL中Multiple primary key defined报错的解决办法
  2. 苹果忘记开机密码_苹果电脑忘记开机密码快速恢复的方法!
  3. lgg6 android 9,LG G6的18:9屏幕用起来到底是什么样
  4. 十七、PHP框架Laravel学习笔记——模型的定义
  5. LeetCode 2034. 股票价格波动(set + map)
  6. 04.卷积神经网络 W2.深度卷积网络:实例探究(作业:Keras教程+ResNets残差网络)
  7. LeetCode 369. 给单链表加一(递归)
  8. LeetCode 85. 最大矩形(DP/单调递增栈,难)
  9. android代理生命周期,了解 Activity 生命周期
  10. 使用c++查看linux服务器某个进程正在使用的内存_Linux 系统管理