Ajax研究
文章目录
1、什么是Ajax
- 无需重新加载整个网页的情况下,能够更新部分网页的技术。
- 并非一种编程语言
- 和国内百度的搜索框一样
2、为什么使用Ajax?
- 不使用Ajax,想要更新内容或者提交一个表单,需要重新加载整个网页。
- 可以实现异步局部更新。
3、伪造Ajax
编写一个springmvc框架
- web.xml
- DispatcherServlet
- contextConfigLocation
- load-on-startup
- filter
- encoding
- springmvc.xml
- 需要加入<mvc:default-servlet-handler />,不然找不到js资源
- component-scan
- annotation-driven
- InternalResourceViewResolver
- controller
- RestController
- RequestMapping
编写一个html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>skr</title>
<script>
function a(){
var url = document.getElementById("url").value;
document.getElementById("iframe").src = url;
}
</script>
</head>
<body>
<div>
<p>请输入地址</p>
<p>
<input type="text" id="url" value="https://www.baidu.com/">
<input type="button" value="查找" onclick=a()>
</p>
</div>
<div>
<iframe style="width: 100%;height: 500px" id="iframe"/>
</div>
</body>
</html>
4、使用jQuery.ajax
- jQuery是一个js库,有很多js的函数
- 使用jQuery,搜索框失去焦点产生请求
1、下载jQuery
- 这里下载源码版(可以查看源码)
- 右键连接另存为
- 目录结构,不要把js放在WEB-INF下面,会找不到
2、编写AjaxController
@RequestMapping("/a1")
public void test2(String name, HttpServletResponse httpServletResponse) throws IOException {
System.out.println("a1.name=>"+name);
if ("kuangshen".equals(name)){
httpServletResponse.getWriter().print("true");
}else {
httpServletResponse.getWriter().print("fales");
}
}
3、编写index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
<%--引入js文件--%>
<script src="${pageContext.request.contextPath}statics/js/jquery-3.6.0.js"></script>
<script>
function a(){
$.post({
url:"${pageContext.request.contextPath}/a1",
/*pageContext.request.contextPath请求资源的方式*/
data:{"name":$("#username").val()},
/*回调函数*/
success: function (data) {
alert(data)
}
})
}
</script>
</head>
<body>
<%--失去焦点时,发起一个请求到后台--%>
用户名:<input type="text" onblur=a() name="username">
</body>
</html>
- 可以对照post源码,看格式
4、运行结果
小结:
- ajax希望不用刷新页面就能得到数据
- 只需掌握url,data,callback(sucess)三个属性即可
- ajax与json是前后端分离的核心
- 用图来说明干了什么