一、 到底什么是Ajax?
ajax 全名 async javascript and XML(异步JavaScript和XML)
是前后台交互的能⼒ 也就是我们客户端给服务端发送消息的⼯具,以及接受响应的⼯具
AJAX 不是新的编程语言,而是一种使用现有标准的新方法。
AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。
是⼀个 默认异步执⾏机制的功能,AJAX分为同步(async = false)和异步(async = true)
什么是同步请求?(false)
同步请求是指当前发出请求后,浏览器什么都不能做,
必须得等到请求完成返回数据之后,才会执行后续的代码,
相当于生活中的排队,必须等待前一个人完成自己的事物,后一个人才能接着办。
也就是说,当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面处于一个假死状态,
当这个AJAX执行完毕后才会继续运行其他代码页面解除假死状态
什么是异步请求?(默认:true)
默认异步:异步请求就当发出请求的同时,浏览器可以继续做任何事,
Ajax发送请求并不会影响页面的加载与用户的操作,相当于是在两条线上,各走各的,互不影响。
一般默认值为true,异步。异步请求可以完全不影响用户的体验效果,
无论请求的时间长或者短,用户都在专心的操作页面的其他内容,并不会有等待的感觉
2. AJAX 的优势
不需要插件的⽀持,原⽣ js 就可以使⽤
⽤户体验好(不需要刷新⻚⾯就可以更新数据)
减轻服务端和带宽的负担
缺点:搜索引擎的⽀持度不够,因为数据都不在⻚⾯上,搜索引擎搜索不到
jQuery实现AJAX
1.引入jquery脚本库
2.$.ajax({…});
3.几个属性:
url: ajax要发送请求的一个地址
相对路径:user/login.do 自动拼接地址 /项目名/user/login.do
绝对路径:/项目名/user/login.do 或${pageContext.request.contextPath}/user/login.do
不进行拼接地址操作
data:发送请求的时候,需要携带的参数 key/value
success:请求成功后的回调函数
type:提交方式,默认GET POST
dataType: 预期服务器返回的数据类型,比如json
$.ajax({
url:"xxx.do",
type:"POST",
success:function(data){},
error:function(…){},
dataType:"json"
});
对于以上代码:
a.属性名必须严格按照jQuery规定写,比如url,type
b.属性名:值,中间用逗号分隔开;最后不要逗号
c.属性没有先后顺序
示例:无刷新登录
1. 创建登录按钮,更改类型提交 为 按钮
2. 引入javaScript 和 jQuery
3. 触发方法login()
4. jQuery集成Ajax
5. 测试-是否到后台
6. 测试-传送参数到后台
页面:
后台:
7. 书写登录逻辑,通过对象HttpServletResponse响应结果给Ajax
8. Ajax逻辑书写