Ajax and jQuery Ajax

我们做前端的,肯定不会只满足于写一些静态网页,我们希望做到网站(与服务器)的数据交互。不得不说,现在前端的发展真是太快了,不断的更新迭代,新的技术就如同雨后春笋,需要我们具备持续的学习能力才能更好的完成工作。
本文主要介绍原生Ajax和jQuery Ajax的使用。能够实现AJAX功能的还有两种现在比较流行的技术,Axios、Fetch。
好了,废话不多说,开始进入正题。

简单说一下这四者的区别吧:Ajax:

全称Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)最早出现的发送后端请求技术,隶属于原始js中,核心使用XMLHttpRequest对象,多个请求之间如果有先后关系的话,就会出现回调地狱。

jquery Ajax:

是 jQuery 底层 AJAX 实现。简单易用的高层实现,$.get, $.post 等。$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该函数,除非你需要操作不常用的选项,以获得更多的灵活性。jQuery ajax - ajax() 方法

Axios:

axios不是原生JS的,需要进行安装,它不但可以在客户端使用,也可以在nodejs端使用。Axios也可以在请求和响应阶段进行拦截。同样也是基于Promise对象的。特性:从浏览器中创建 XMLHttpRequests、从 node.js 创建 http 请求、支持 Promise API、拦截请求和响应等。Axios 中文文档传送门

Fetch:

Fetch 提供了对 Request 和 Response (以及其他与网络请求有关的)对象的通用定义。使之今后可以被使用到更多地应用场景中:无论是service workers、Cache API、又或者是其他处理请求和响应的方式,甚至是任何一种需要你自己在程序中生成响应的方式。Fetch号称是AJAX的替代品,是在ES6出现的,使用了ES6中的Promise对象。Fetch是基于promise设计的。Fetch的代码结构比起ajax简单多了,参数有点像jQuery ajax。但是,一定记住fetch不是ajax的进一步封装,而是原生js。Fetch函数就是原生js,没有使用XMLHttpRequest对象。

一、什么是Ajax

Ajax是一种异步请求数据的web开发技术,对于改善用户的体验和页面性能很有帮助。简单地说,在不需要重新刷新页面的情况下,Ajax 通过异步请求加载后台数据,并在网页上呈现出来。常见运用场景有表单验证是否登入成功、百度搜索下拉框提示和快递单号查询等等。Ajax的目的是提高用户体验,较少网络数据的传输量。同时,由于AJAX请求获取的是数据而不是HTML文档,因此它也节省了网络带宽,让互联网用户的网络冲浪体验变得更加顺畅。

二、Ajax原理是什么

三、原生Ajax怎么写

  1. 创建一个ajax请求,依赖一个xhr对象

2. 监听xhr对象的状态

3. 建立连接

GET请求实例:

  1. xhr.open(method,url,async);
  • method:请求的类型;GET 或 POST
  • url:文件在服务器上的位置,如果是get请求,参数已?号开头下载地址后面
  • async:true(异步)或 false(同步)

2. xhr.send(string);

  • post请求时才使用字符串参数,否则不用带参数。

POST请求实例:

四、jQuery Ajax怎么写

jQuery Ajax是对原生XHR的封装,除此以外还增添了对JSONP的支持。

注意:JQuery 1.9版本版本以下不支持大文件请求

post请求实例

$.ajax({type: "POST",url: "jq.php",//请求的媒体类型contentType: "application/json;charset=UTF-8",data: {"username": $("input").val(),"score": 100},success: function(data) {console.log(data)},error: function(err) {console.log(err)}})

type:请求方式 (“POST” 或 “GET”), 默认为 “GET”。

data:发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。

success:请求成功后的回调函数。

error:请求失败时调用此函数。

链接: jQuery ajax - ajax() 方法.

五、什么是readyState?

readyState是XMLHttpRequest对象的一个属性,用来标识当前XMLHttpRequest对象处于什么状态。

readyState总共有5个状态值,分别为0~4,每个值代表了不同的含义

  • 0:未初始化 – 尚未调用.open()方法;
  • 1:启动 – 已经调用.open()方法,但尚未调用.send()方法;
  • 2:发送 – 已经调用.send()方法,但尚未接收到响应;
  • 3:接收 – 已经接收到部分响应数据;
  • 4:完成 – 已经接收到全部响应数据,而且已经可以在客户端使用了;

六、什么是status?

————————————————

版权声明:本文为CSDN博主「喜洋杨」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:

不会吧,不会吧,不愧是Ajax,jQuery Ajax啊​blog.csdn.net

最新文章

  1. UITableView的cell向左滑出有删除,修改等选项
  2. linux route命令删除多余路由
  3. Ubuntu16安装anaconda没有这个文件或者目录
  4. SparkSQL操作Hive
  5. 2021北京高考英语口试成绩查询,2021北京高考英语口语怎么考?2021英语增加口语考试是全国?...
  6. 如何在Ubuntu上创建桌面快捷方式
  7. python闭包应用实例_Python中的闭包详细介绍和实例
  8. 60-200-070-使用-命令-MySQL慢查询日志
  9. 每日一句20191228
  10. 公司-ofo:ofo
  11. CF55D: Beautiful Number
  12. php整点抽奖活动,php实现活动人选抽奖功能代码
  13. cad画计算机网络图,CAD迷你家装五步快速绘制平面图教程
  14. Scrapy库的安装,Scrapy爬虫框架简介
  15. 电子合同助力“在线教育”高效发展
  16. 双料大奖 | 奇点云获评「年度数字化创新最佳实践奖」「年度数字化服务最值得信赖品牌奖」
  17. fault、error、failure辨析
  18. 【四二学堂】H5手机游戏-梅花易数一撮金(游戏开发系列微课之一)
  19. (转)HBase WAL简介
  20. 结构设计模式:复合模式

热门文章

  1. AfxBeginThread的介绍/基本用法和Window多线程使用详解
  2. Leetcode题目:Balanced Binary Tree
  3. 数据库课本SQL第三章答案
  4. 1.2-shell结构以及执行
  5. Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)下
  6. LINUX基本命令行手册一
  7. 额外域建立FSMO角色转移及夺取
  8. asp实用类库--DataList
  9. Spring+Velocity中模板路径的问题
  10. linux c 运行命令 popen 简介