【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 ...
随机推荐
- c# 拖拽列表顺序 | 拖拽合并分组 | 移除分组功能
动图演示: 背景: 一开始做功能的时候没有增加排序的索引(sort-index),后来要求做拖拽排序功能:所以写了这个不需要初始排序就可以完成的拖拽功能:如果是table表格排序逻辑和这个相似,这里拿 ...
- Spark-submit常用任务命令参数和说明
Spark常用任务命令参数和说明 spark-submit \ --name task2018072711591669 \ --master yarn --deploy-mode client \ - ...
- work13
任务要求: 1.建立一个企鹅类,企鹅有名字(可以自由添加属性)2.把多个企鹅的信息添加到集合中3.查看企鹅的数量4.遍历输出所有企鹅的信息5.删除集合中索引值是2的企鹅的元素 任务描述: 定义一个老鼠 ...
- vite+vue3+ts+elementPlus前端框架搭建 [三] router路由管理
路由包括动态路由.静态路由两种,本文中以静态路由的方式实现了动态路由. 1. 创建Router 在Src目录下创建router文件夹,并在router文件夹下创建index.ts文件. index.t ...
- Apollo启动配置排查,超时时间的配置
Apollo启动配置排查 1.排查下来是 本地的服务 apollo 配置fake发布到线上去了.2.或者是引用的apollo jar包中指向的apollo服务器地址是否正确. 3.超时时间的配置 ## ...
- https请求,Java代码忽略https证书:解决No subject alternative names present问题
https请求,Java代码忽略https证书:解决No subject alternative names present问题 package com.test.utils; import org. ...
- YUM退役了?DNF本地源配置
客户遇到在OEL8安装Oracle缺包问题,使用dnf安装也没有,甚至连oracle-database-preinstall-21c都装不上.本质是DNF配置问题. 早期为了解决这类问题,专门写过很多 ...
- dig 命令详解及使用示例
一.背景知识 CNAME CNAME 是 Canonical Name 的缩写,它是 DNS(域名系统)记录的一种类型.CNAME 记录用于将一个域名映射(别名)到另一个域名.换句话说,当你访问一个设 ...
- Codeforces Global Round 26 A~C2
惹啊啊啊啊,这场做得我发昏,最近总感觉不在状态,但还是再在冲击1600-1800的题目. A. Strange Splitting ---------------------------------题 ...
- 【Hive报错】在hue上执行自定义的hive函数报错 Error while compiling statement:FAILED:SemanticException [Error 10011]: Invalid function default.sqlServerdes
在 Hive客户端中使用自定义创建UDF函数时,报"ERROR 10011","invalid function"的异常: 在Hive上自定义创建了一个函数,在 ...