一、Ajax简介

AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。
AJAX 不是新的编程语言,而是一种使用现有标准的创新方法。
AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。
AJAX 不需要任何浏览器插件,但需要用户允许 JavaScript在浏览器上执行。
XMLHttpRequest 只是实现 Ajax 的一种方式。

二、同步与异步

同步:发送⼀个请求,需要等待响应返回,然后才能够发送下⼀个请求,如果该请求没有响应,不能发送下⼀个请求,客户端会处于⼀直等待过程中。

异步:发送⼀个请求,不需要等待响应返回,随时可以再发送下⼀个请求,即不需要等待。

三、实现Ajax

1. 原生JS实现

实现步骤:
1、定义⼀个XMLHttpRequest核⼼对象xhr;
2、通过xhr.open⽅法给当前对象提供访问⽅式、URL等。
3、发送当前的请求⾄指定的URL
4、接收返回值并处理

案例:前台⻚⾯通过⼀个按钮向后台发送⼀个Ajax请求,后台做完处理后向前台⻚⾯响应⼀段⽂本信息显示在⻚⾯上

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<script type="text/javascript">function testJsAjax(){//1. 创建核⼼对象var xmlhttp = new XMLHttpRequest();//2.通过核⼼对象⽅法给当前的对象提供访问⽅式和URL路径xmlhttp.open("GET","http://localhost/getmsg",true);//3.发送当前的请求⾄指定的URLxmlhttp.send();//4.接收返回值并处理xmlhttp.onreadystatechange=function(){//xmlhttp.readyState==4代表XMLHttpRequest对象读取服务器的响应结束//xmlhttp.status==200响应成功if (xmlhttp.readyState==4 && xmlhttp.status==200){var msg = xmlhttp.responseText;document.getElementById("msg").innerHTML=msg;}}}
</script>
</head> <body> <div id="msg"></div> <input type="button" name="btn" value="JS原⽣⽅式实现异步" οnclick="testJsAjax()">
</body>
</html>

2.JQuery实现

JS版的Ajax仅做为了解,我们重点学习jQuery版的Ajax,jQuery是⼀个优秀的js框架,⾃然对JS原⽣的Ajax进⾏了封装,封装后的Ajax的操作⽅法更简洁,功能更强⼤,这也是程序员最普遍使⽤,语法结构简单,代码可读性好。

与Ajax操作相关的jQuery⽅法经常使⽤的有三种:

2.1 ajax请求

$.ajax({url:"",data:{},type:"post/get",async:true,dataType:"text",success:function(obj){},error:function(){}
})

注意事项:

  1. 每个属性后都要跟随⼀个英⽂逗号,最后⼀个不⽤。
  2. 每⼀个属性都是键值对的形式存在,中间⽤英⽂冒号:隔开
  3. data:{} 是⼀个特殊的写法,值是⼀个{},⾥⾯使⽤键值对存储
    例如:data:{“键1”:值1, “键2”:值2, “键3”:值3}
  4. 以上属性没有先后顺序要求

2.2 get请求

$.get(URL,data,function(data,status,xhr),dataType)
参数 含义
URL 必需。规定您需要请求的 URL。
data 可选。规定连同请求发送到服务器的数据。
function(data,status,xhr) 可选。规定当请求成功时运行的回调函数。
额外的参数:
  data 包含来自请求的结果数据"
  status 包含请求的状态(“success”、“notmodified”、“error”、“timeout”、“parsererror”)
  xhr 包含 XMLHttpRequest 对象
dataType 可选。规定预期的服务器响应的数据类型。
  默认地,jQuery 会智能判断。
  可能的类型:
  “xml” - 一个 XML 文档
  “html” - HTML 作为纯文本
  “text” - 纯文本字符串
  “script” - 以 JavaScript 运行响应,并以纯文本返回
  “json” - 以 JSON 运行响应,并以 JavaScript 对象返回
  “jsonp” - 使用 JSONP 加载一个 JSON 块,将添加一个 “?callback=?” 到 URL 来规定回调

注意事项:

  1. 这种写法功能和$.ajax是⼀样的,但是严格要求属性顺序。

实例:
请求 “/try/ajax/test.php”,但是忽略返回结果:

$.get("/try/ajax/test.php");

请求 “/try/ajax/test.php” 并连同请求发送一些额外的数据(忽略返回结果):

$.get("/try/ajax/test.php", { name:"Donald", town:"Ducktown" });

请求 “/try/ajax/test.php” 并传递数据数组到服务器(忽略返回结果):

$.get("/try/ajax/test.php", { 'colors[]' : ["Red","Green","Blue"] });

请求 “/try/ajax/test.php” 并提醒请求的结果:

$.get("/try/ajax/test.php", function(data){alert("Data: " + data);
});

2.3 post请求

$(selector).post(URL,data,function(data,status,xhr),dataType)

实例:使用 AJAX 的 POST 请求来改变div元素的文本

$.post("demo_ajax_gethint.html",{suggest:txt},function(result){$("span").html(result);
});

参考资料:

  1. CSDN博主「PIKapikaaaa」https://blog.csdn.net/PIKapikaaaa/article/details/124914380
  2. 菜鸟教程 AJAX 教程 https://www.runoob.com/ajax/ajax-tutorial.html

Ajax?阿贾克斯?相关推荐

  1. jQuery ajax - ajax阿贾克斯 Get()和Post()方法请求用法整理

    2020年10月29日 上午11:47:41 原文链接:http://note.youdao.com/noteshare?id=cb8e02bcbdfdd95a0cf84fc61d486ac5& ...

  2. ajax阿贾克斯2019阵容,记住阿贾克斯2019的孩子们!他们杀死皇马尤文 这毕业季真痛...

    腾讯体育5月9日讯 离欧冠决赛仅有一步之遥!被热刺读秒绝杀,阿贾克斯最终还是无缘决赛,但是这支青年之师,已经足以令人对其肃然起敬.贾府的美名在本季欧冠必然将成为佳话流传于足史. 综合两场的表现来看,实 ...

  3. ajax阿贾克斯赞助商,阿贾克斯(AJAX)(示例代码)

    AJAX   :Asynchronous JavaScript and XML异步的javascript和xml 优点 : 在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分数据 不需要任何 ...

  4. ajax (阿贾克斯)----------- js 向后端索要数据的方式(技术)

    ajax  + js 向后端索要数据的方式(技术) 基本步骤 1. 创建ajax 对象 const xhr = new XMLHttpRequest() 2. 配置本次的请求信息 xhr.open(请 ...

  5. ajax,HTTP原理 : 网络传输协议,网页从输入url到渲染的流程,函数防抖和节流

    一. 前后端交互流程 1.服务器 : 提供某种服务器的机器(计算机) qq音乐:音频服务器 , 迅雷:文件服务器 , qq邮箱:邮件服务器,爱奇艺:视频服务器,谷歌:web服务器 2. 前端 访问 服 ...

  6. Ajax 详解 网页从输入url到渲染的流程 同步 异步 你想要的全都有

    1  前后端交互流程 1.1   了解服务器      提供某种服务器的机器(计算机) 1.2    了解前端         访问 服务器的几种方式 直接在地址栏输入网址            网页 ...

  7. 文件不能断点 webstorm_详解python使用金山词霸的翻译功能(调试工具断点的使用)...

    这篇文章主要介绍了详解python使用金山词霸的翻译功能(调试工具断点的使用),本文给大家介绍得非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 今天试着用python获取金山 ...

  8. 2016年世界编程大赛_在2016年学习的最佳编程语言是什么?

    2016年世界编程大赛 Craig's Best Programming Language to Learn in 2015 article was a huge hit, and in this a ...

  9. java web学习笔记(持续更新)

    java web学习笔记 一.Java Web简介 二.认识Servlet 1.什么是Servlet? 2.请求路径 3.tomcat 4.Servlet的使用 三.Servlet简单应用 1.创建S ...

  10. 【微信小程序】理论学习笔记

    来源:慕课视频<微信小程序开发>&黑马课程 小程序基础了解 微信小程序框架 逻辑层–JavaScript.处理业务逻辑 视图层-视图样式WXSS.视图层描述语言WXML.渲染页面 ...

最新文章

  1. WCF布署问题1 :HTTP 错误 404.17 - Not Found 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。...
  2. 权限控制相关数据表分析和创建
  3. 关于字符编码,你所需要知道的
  4. 使用Spring和Java泛型简化数据访问层
  5. Android Studio显示行数
  6. [react] 什么是React.forwardRef?它有什么作用?
  7. QT——设置可执行文件图标
  8. 白领体检异常率连年走高,这5本书教你怎样科学养生
  9. 【c++随笔】MinGW32编译环境实现DLL的创建与调用实例
  10. ACdream - 1073 雷霆战机
  11. SuperMap iDesktop常见问题解答集锦 (二)
  12. git commit --amend 用法
  13. 报错——xxx is not defined
  14. 1.0 win10下curl的安装
  15. java android 读取微信文件,Android 实现微信,QQ文件在其他应用打开并获取到路径
  16. oracle中minus什么意思,Oracle Minus关键字
  17. python、matplotlib画箱体图检验异常值
  18. 获取今日时间范围区间
  19. VS集成Qt环境搭建
  20. 智能客服能用于哪些场景?

热门文章

  1. 肺癌最新研究进展,与微生物息息相关
  2. Python数据可视化 - 使用Dash库制作杭州数据分析师岗位招聘情况可交互网页报告(附代码下载)
  3. Excel函数组合(一) - VLOOKUP和MATCH组合
  4. 自动驾驶全球布局(3)传统汽车厂商
  5. Linux C之atio()函数
  6. Nature重磅:人鼠混合大脑问世,‘大脑类器官’研究再添新进展
  7. 数学建模常用模型21:BP神经网络(三层)
  8. 4.定义并实现一个Person类,包含姓名(name)与编号(code)等两个属性,通过构造函数为属性赋值,拥有显示属性值的方法(showInfo)。从Person类派生出一个Student类,拥有数
  9. 笨办法学python ex11-20
  10. ❤️40条软件测试面试常考题目总结(附答案解析)【建议收藏】❤️