ajax小结
来源:互联网 发布:sql 判断是否在一天内 编辑:程序博客网 时间:2024/05/17 08:21
Ajax简介:
1、 Ajax特点:
1、ajax不是新技术,是之前技术的整合,是异步的JavaScript和XML
2、用于局部刷新、提高用户的体验度,数据从服务器中加载
3、 Ajax实现的是B/S架构下的异步交互
4、 包括的技术:JavaScript、XML、CSS、XMLHttpRequest
5、 JavaScript:向服务器发送请求,获得返回结果,更新页面
6、 XML: 用来封装数据
7、 同步交互与异步交互:同步交互,客户端向服务器端发送请求,到服务器端进行响应,这个过程中,用户是不能做任何其他事情(等);异步交互,客户端向服务器端发送请求,直到服务器端进行响应,这个过程中,用户可以做任何其他事情(不等)
8、 同步与异步的区别: 同步交互, 执行速度相对比较慢,响应的是完整的HTML页面;异步交互,执行速度相对比较快,响应的是部分数据。
2、 Ajax核心原理:
Ajax的工作原理是使用户操作与服务器响应异步化。Ajax的原理简单来说通过XmlHttpRequest对象来向服务器发异步请求,进行数据的传递和获取,一共有三种数据格式html、xml、json,一般使用json的数据格式,因为是轻量级的比较容易使用和解析,然后用javascript来操作DOM而更新页面,实现局部刷新的效果。运用xmlhttprequest对象实现异步数据获取是ajax的核心
3、 原生js实现ajax
<scripttype="text/javascript">
window.onload =function(){
document.getElementById("aaa").onclick=function(){
//1、创建一个xmlhttprequest对象
var request = new getXhr();
//2、准备发送请求的数据:url
var url = this.href;
//发送状态是get
var method="GET"
//发送请求是post
//request.setRequestHeader(Content-Type,application/x-www-form-urlencoded);
//3、调用open方法
request.open(method,url);
//4、调用send方法
request.send(null);
//5、为XMLHttpRequest对象添加onreadystatechange相应函数,这个事件由服务器触发
request.onreadystatechange=function(){
//6、判断响应是否完成,XMLHttpRequest对象的readyState属性为4的时候
if(request.readyState== 4){
//7、在判断相应是否可用,XMLHttpRequest对象的state属性为200的时候
if(request.status==200||request.status==304){
//8、打印相应结果responseText
document.getElementById("bbb").innerHTML=request.responseText;
}
}
}
//取消节点默认行为
return false;
}
}
//获取XMLHttpRequest对象
function getXhr() {
//声明XMLHttpRequest对象
var xhr = null;
// 根据浏览器的不同情况进行创建
if (window.XMLHttpRequest) {
// 表示除IE外的其他浏览器
xhr = new XMLHttpRequest();
} else {
// 表示IE5之前的浏览器
xhr = newActiveXObject('Microsoft.XMLHttp');
}
return xhr;
}
</script>
这样就可以异步的获取数据进行显示了
4、 使用jquery实现ajax(最长用的几个)
$.ajax() :费劲
$.ajax({
type: "get",
url: "<c:url value='/CheckNameServlet' />",
data: "uname=" + uname,//传递的参数
success: function(result) {
alert($.trim(result).indexOf("true")> -1);
if($.trim(result).indexOf("true") > -1) {
$("#unameDiv").html("用户名已被占用");
}else {
$("#unameDiv").html("用户名可以使用");
}
},
error: function() {
alert("ajax执行失败");
}
});
$.post():比较方便
<script type="text/javascript">
$(function(){
$("#aaa").click(function(){
//使用load方法添加数据
$("#bbb").load(
this.href,
{"time":newDate()});
return false;
});
});
</script>
如果与后台交互的话可以使用PrintWriter 的对象将返回结果返回到客户端
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String name = request.getParameter("uname");
if ("admin".equals(name)) {
out.println("用户名存在");
out.flush();
out.close();
}
$.getJSON():用于回掉json类型的数据
$.getJSON( 'LoadServlet',
{uname : uname},
function(data) {
alert(data);
alert(data.flag);
alert(data.msg);
});
使用PrintWriter对象写入,并且要写成json类型
PrintWriterout = response.getWriter();
Stringname = request.getParameter("uname");
if("admin".equals(name)) {
out.print("{\"flag\":false,\"msg\":\"heihei\"}");//注意必须加斜杠
out.flush();
out.close();
}
补充:
onreadystatechange:设置状态改变时的回调函数,回调函数用来获取服务器数据。
readyState:服务器状态响应
状态码:
0:未初始化
1:正在加载
2:加载完成
3:请求进行中
4:请求完成
responseText:服务器返回的数据(文本格式)
responseXML:服务器返回的数据(XML格式)
- AJAX小结
- AJAX 小结
- AJAX小结
- ajax 小结
- Ajax小结
- Ajax小结
- ajax小结
- ajax小结
- AJAX小结
- ajax小结
- [学习小结]Ajax小结
- 【AJAX】AJAX小结(二)
- Ajax研究小结
- Ajax研究小结
- Ajax研究小结
- Ajax研究小结
- 做ajax经验小结
- ajax 学习小结
- Win快捷键
- jquery之事件添加和取消
- FZU 1015 土地划分 (计算几何求线段交点个数)
- Dubbo的三种连接方式
- 经典算法python代码实现
- ajax小结
- 使用vue-cli创建项目
- 二维码
- 星月蓝图
- pomelo(十)英文文档首页
- luogu P2368 EXCEEDED WARNING B
- 12进制和20进制计数器用verilog语言实现
- POJ
- html画布制作贪吃蛇小游戏