【AJAX】Asynchronous JavaScript And XML (非同步的JS & XML)
什么是AJAX?
按照使用的感觉来看
说到底就是一个可以不刷新网页就能发送POST & GET请求的技术
AJAX 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML)
是指一种创建交互式网页应用的网页开发技术。
ajax 是一种浏览器通过 js 异步发起请求,局部更新页面的技术。
Ajax 请求的局部更新,浏览器地址栏不会发生变化
局部更新不会舍弃原来页面的内容
原生JS的AJAX实现
【省略,过于繁琐,开发不会使用】
jQuery 封装的 AJAX 请求


Ajax的作用:
网页不刷新的情况下,从服务器中获取数据的解决方案。
这是一个新的局部的请求,并不是整个网页发出的请求
考虑到前端的数据处理,我们需要指定数据格式为JSON
需求的特点 符合 Ajax:
- 我们就是希望能够不刷新网页来进行前后端的数据交互
- 并不是整个网页都需要加载,而是仅仅局部的一个部分需要获取
快速上手:
我们需要一个能使用Ajax的Jquery库文件
并不是所有的Jquery版本都可以发送Ajax,注意这个坑把
1、在头标签中导入Jquery文件:
使用原生JS也不是不可以写,主要是因为太过复杂
<script type="text/javascript" src="jquery-1.12.4.min.js"></script>
2、编写一个可以用来出发事件的元素
<button id="btn"> Ajax触发测试 </button>
3、编写JQ代码
- 首先测试,这个元素是否被JQ绑定,且事件能否成功的触发
- 其次,编写JQ的Ajax请求
原始的JQ版本的Ajax请求是这样编写的:
$.ajax({})
里面需要注入一个对象:
该对象需要以下的一些要素:
- url ,你需要把这个Ajax请求发送到哪里?
- type,这个Ajax请求的方式是哪种?
- data,这个Ajax请求需要携带什么参数?
- success,请求成功之后,得到的数据需要怎么处理?【这个函数对象又被称为是回调函数,也就是响应成功之后要执行的事情】
- dataType,返回的数据类型应该以什么样的格式过来?
<script type="text/javascript">
$(function () {
$("#btn").click(function () {
// alert("绑定成功,事件触发!!!")
$.ajax({
url: "http://localhost:8080/RBAC/ajax",
type: "post",
data: {
act: "feedBack",
username: "silentHonor101Ark",
password: "DZZ19970906"
},
success:function (data) {
alert(data);
alert(typeof data);
console.log(data);// $("#table").empty();
},
dataType: "json"
});
});
});
</script>
4、发送到JavaWeb的AjaxServlet程序:
- Ajax从页面发送请求过来,服务器封装的请求对象封装了参数信息
从getParameter方法中获取出来
- 其次,我们需要从数据库中根据Ajax发送的参数,用来查询数据,然后给Java对象封装存储
- 前端通用的数据交互格式为Json,所以我们还需要按照Json格式把对象序列化成一个字符串
- 然后调用响应对象的输出对象,把Json格式的字符串写回去给前端
package cn.dai.test.servlettest; import cn.dai.dao.UserDaoImpl;
import cn.dai.pojo.User;
import cn.dai.service.UserService;
import cn.dai.service.UserServiceImpl;
import cn.dai.servlet.BaseServlet;
import com.alibaba.fastjson.JSON; import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List; /**
* @author ArkD42
* @file RBAC
* @create 2020 - 06 - 16 - 8:32
*/ @WebServlet("/ajax")
public class AjaxServlet extends BaseServlet { UserService userService = new UserServiceImpl(new UserDaoImpl()); /**
* /ajax?act=feedBack
* 反馈给前端Ajax不应该跳转,直接写输出流即可
* 数据出于方便前端处理的考虑,统一使用的数据格式为JSON
* @param request
* @param response
* @throws IOException
*/
public void feedBack(HttpServletRequest request, HttpServletResponse response) throws IOException {
// Ajax从前端发送请求,Servlet接受请求,获取关键信息,也就是id主键信息等等,
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println("从AjaxTest.jsp获取到的数据: 用户名:" + username + " 密码:" + password);
// 然后在Servlet这里我们就可以调用Service访问数据库,把数据封装成Java对象【或者是集合容器对象】 List<User> allUsers = userService.getAllUsers(); // 对这个对象需要转换成前端能接受处理的JSON格式
String jsonString = JSON.toJSONString(allUsers); // PrintWriter out
PrintWriter writer = response.getWriter(); // 把转换好的格式写给前端
writer.println(jsonString);
}
}
5、具体的数据处理
- 然后这个JSON字符串写给了前端,就会被回调函数的data参数或者什么给获取到
- 这个data对象就会存储数据信息,至于如何调用展示到前端页面上面,就不是这里Ajax细讲的内容了

所以我们总结一下这上面做完之后的感受,
实际上Ajax就是一个用来在不刷新页面的情况下跟后台数据交互的解决方案
所以有时候就是好在不刷新网页获取,有时候坏也在不刷新网页获取
我在学习Ajax总是执着于一个错误的观点:
- ajax会让网页跳转,其次不明白Servlet的内容是干什么
【AJAX】Asynchronous JavaScript And XML (非同步的JS & XML)的更多相关文章
- AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。
AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法. AJAX 最大的 ...
- 什么是AJAX? AJAX:”Asynchronous JavaScript and XML”中文意思:异步JavaScript和XML。
指一种创建交互式网页应用的网页开发技术. AJAX并非缩写词,而是由Jesse James Gaiiett创造的名词. 不是指一种单一的技术,而是有机地利用了一系列相关的技术: web标准( Stan ...
- Ajax (Asynchronous javascript xml) 搜索框核心代码(JQuery) Ajax判断用户名存在核心代码 附:原生js的Ajax代码 其中有json的一句话解释
前端 <script type="text/javascript"> $(function(){ $("#tid").keyup(function( ...
- ajax(Asynchronous JavaScript and XML) 异步js或者xml
1.XMLHttpRequest 对象:向服务器发送局部的请求,异步获取执行 a.浏览器支持 b.语法: xmlhttp==new XMLHttpRequest(); xmlhttp.open(&qu ...
- AJAX异步的 JavaScript
什么是AJAX: AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法. ...
- javascript jsscript .js xml html json soap
javascript ecma标准的脚本语言用于 jsscript 微软标准的一种脚本语言 .js javascript或jsscript保存成文件的形式可用于在html里重复引用 jsscript只 ...
- Ajax技术 - (Asynchronous JavaScript + XML)
Ajax Ajax = 异步JavaScript和XML,Ajax是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新.可以再网页不重新加载的情况下, ...
- AJAX(Asynchronous JavaScript And XML)
AJAX(Asynchronous JavaScript And XML):异步的javascript和xml技术 作用:在不刷新整个页面的情况下,通过XMLHttpRequest向后台偷偷发起请求, ...
- jQuery和ajax【“Asynchronous Javascript And XML】
环境搭建 搭建一个jQuery的开发环境非常方便,可以通过下列几个步骤进行. 下载jQuery文件库 在jQuery的官方网站(http://jquery.com)中,下载最新版本的jQuery文件库 ...
- JavaScript 【非IE DOM2级XML】
DOM2中的XML IE可以实现了对XML字符串或XML文件的读取,其他浏览器也各自实现了对XML处理功能.DOM2级在document.implementaion中引入了createDocument ...
随机推荐
- HiveSQL 工作实战总结
记录一些工作中有意思的统计指标,做过一些简化方便大家阅读,记录如有错误,欢迎在评论区提问讨论~ 问题类型 连续问题 两种思路 第一种:日期减去一列数字得出日期相同,主要是通过row_number窗口函 ...
- react减少组件渲染
当this.setState()修改了state中的数据后,当前组件将重新渲染,同时也会重新渲染子组件,但只会渲染当前组件子树(当前组件以其所有子组件) shouldComponentUpdate 当 ...
- CSP-S2019 题解
做了这套题,如果是让现在的我当时去考的话应该一共可以有 450 分,格雷码,括号树,树的重心都可以做,树上的数可以有 10 分,Emiya 至少可以有 76 分, 划分也可以有 64 分.看 OIer ...
- P7322
P7322 好神仙! \(\color{#5bc9}\text{提醒,本文有大量没有推到过程的式子,所以读者可以自己遮住先推一下}\) Inscription: 有一个长度为 \(k\) 的窗口,在一 ...
- 【INFINI Workshop 深圳站】8 月 31 日一起动手实验玩转 Easysearch
8 月 31 日下午 和 INFINI Labs 的技术专家面对面,第一时间了解极限实验室的发布最新产品和功能特性,通过动手实战,快速掌握最前沿的搜索技术,并用于实际项目中.欢迎大家免费报名参加. 活 ...
- 在线IP归属地查询工具
在线IP地址归属地查询工具,通过该工具可以查询指定IP的物理地址或域名服务器的IP和物理地址,及所在国家或城市IP归属地,数据为纯真IP. 在线IP归属地查询工具
- 5分钟理透LangChain的Chain
LangChain几乎是LLM应用开发的第一选择,它的野心也比较大,它致力于将自己打造成LLM应用开发的最大社区.而LangChain最核心的部分非 Chain 莫属. 那Chain到底是个啥,概念比 ...
- 05-CentOS防火墙
概述 CentOS中的防火墙有很多,如SELinux.Firewall.TCP Wrappers.iptables/netfilter. 每种防火墙都有各自擅长的地方. 这里主要讲两种:SELinux ...
- 服务器上安装centos7系统遇到的坑
centos7的安装报错"no controller found" 出现no controller found解决方案1.等待命令行出现 2.输入ls /dev/sd* 找到自 ...
- xpath-猪八戒网服务商名称爬取
import requests from lxml import etree url = 'https://changsha.zbj.com/xcxkfzbjzbj/f.html?fr=zbj.sy. ...