Ajax
1.目前的浏览器和服务进行交互的几种方式?
①form表单进行提交数据
②window.location.href 进行资源页面的跳转(相当于form表单的get请求)
③使用超链接<a> (相当于form表单的get请求)
2.为什么要有ajax ?什么是ajax?
原因:前面的几种方式只是进行资源页面的跳转 有些时候我们需要进行局部资源网页的刷新
定义:是由浏览器解析运行的,基于js的局部网页刷新技术 其实用户触发的逻辑是我们提前写好的 上帝视角 然后已经放在那里 等待用户的触发 一旦用户触发就进行返回给用户想要的资源
3.原生的ajax的基本流程
①创建ajax引擎对象
var ajax=new XMLHttpRequest();
②创建url地址发送请求
ajax.open("get","ajaxServlet");
③发送请求:如果没有请求数据就是空的
ajax.send(null);
④声明ajax响应的请求处理结果
onreadystatechange:是状态码的监听机制 监听是都改变
ajax.onreadystatechange=function () {
//获取响应数据
var data= ajax.responseText;
$("#showdiv").html(data);
}
4.ajax的状态码:
0:请求还没有发出去(在调用open()之前)
1:请求已经监听但是还没有发出去(调用send()之前)
2:请求已经发出 但是还没处理
3:请求已经处理 响应中有数据可以用 但是还没响应完成
4:响应已经完成 浏览器应接受全部的响应内容
5.ajax的响应状态码:
200:响应ok
300:多种选择,可能是一个请求获取了多个url资源地址在后台
400:客户端的语法错误 服务器无法理解
404:页面资源找不到
405:请求的方式不对
500:服务器的内部错误
6.ajax的同步和异步 参数async: true/false 默认是true是异步
同步:代码执行后需要进行等待结果 并且触发回调函数的执行 等回调函数执行完毕后再进行执行其他的逻辑代码
异步:其他逻辑代码正常的执行 无需等待结果
7.响应的格式(json字符串)
服务器和浏览器进行响应数据交互的格式 浏览器容易识别 服务器好拼接 就是将复杂的对象或者是集合进行以字符串的格式打印给浏览器 键值对的方式
用eval() 转换为js对象
8.jquery封装的ajax
$.ajax({
type:"POST",
url:"ajaxServlet",
data:"uname=王五&pwd=456",
success:function (data) {
$("#showdiv").html(data);
}
});
9.ajax和非ajax的区别
①页面不覆盖
②一个是在前台的拼接 一个是在后台的拼接
③一个是浏览器局部页面数新技术 一个是服务端页面技术