一、使用情况:AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下使用。AJAX的核心:向服务器发送多个请求而无需用户等待来至服务器的响应。

二、AJAX的优势

    1.异步加载数据,无需切换页面,不需要刷新
    2.更佳的用户体验:局部刷新、及时验证、操作步骤简化等
    3.节省流量
    4.JS控制数据的加载,更加灵活多用
三、是用步骤:
    1.new XMLHttpRequest()
    2.open
    3.send
    4.onreadystatechange
    5.responseText
例子:(注意:要在服务器上运行)
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript">
//第一步:买手机 var ajax=new XMLHttpRequest();
if (window.XMLHttpRequest){
var ajax=new XMLHttpRequest();//现代浏览器
}
else{
var ajax=new ActiveXObject("Msxml2.XMLHTTP");//见人IE6
}
//第二步:拨电话号
ajax.open("get","test.txt",true);//1.http方法get/post 2.请求的URL地址,可以为绝对地址也可以为相对地址。3.设置请求是否为异步模式。如果是TRUE,JavaScript函数将继续执行,而不等待服务器响应。
//第三步:发送
ajax.send();
//第四步:拨号成功
ajax.onreadystatechange=function (){
// alert(ajax.readyState);
if (ajax.readyState==4){
// alert("已完成");
if (ajax.status>=200&&ajax.status<300||ajax.status==304){
//对方回复
alert(ajax.responseText);
}
}
}
// alert(ajax);
// console.log(ajax);
</script>
</head>
<body>
</body>
</html>
四、readyState的常用的几种状态:
 
0:请求未初始化(还没有调用 open())。
1:请求已经建立,但是还没有发送(还没有调用 send())。
2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)。
3:请求在处理中;通常响应中已有部分数据可用了,但是服务器还没有完成响应的生成。
4:响应已完成;您可以获取并使用服务器的响应了。
 
1**:请求收到,继续处理
2**:操作成功收到,分析、接受
3**:完成此请求必须进一步处理
4**:请求包含一个错误语法或不能完成
5**:服务器执行一个完全有效请求失败
 
200 请求成功    
301 所请求的页面已经转移至新的url 
302 所请求的页面已经临时转移至新的url  
304 文档未修改原来缓冲的文档还可以继使用
400 服务器未能理解请求  
404 服务器无法找到被请求的页面 
500 请求未完成。服务器遇到不可预知的情况 
502 网关错误
 
请求成功条件
readyState==4&&status>200&&status<300||status==304
 
五、为了以后能更方便地使用,可以把ajax封装成一个js函数,如:
function fnAjax(url,succFn,faildFn){
if (window.XMLHttpRequest){
var ajax=new XMLHttpRequest();
}
else{
var ajax=new ActiveXObject("Msxml2.XMLHTTP");
}
ajax.open("get",url,true);
ajax.send();
ajax.onreadystatechange=function (){
if (ajax.readyState==4){
if (ajax.status>=200&&ajax.status<||ajax.status==304){
succFn(ajax.responseText);
}
else{
faildFn();
}
}
}
}
六、函数的使用例子:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
div{
height: 100px;
width: 100px;
background-color: #ccc;
display: none;
}
</style>
<script type="text/javascript" src="ajax.js"></script>
<script type="text/javascript">
window.onload=function (){
var btns=document.getElementsByTagName("input");
var divs=document.getElementsByTagName("div");
for (var i = 0; i < btns.length; i++) {
btns[i].index=i;
btns[i].onclick=function (){
for (var i = 0; i < btns.length; i++) {
divs[i].style.display="none";
};
divs[this.index].style.display="block";
//h/a2.html
var _this=this;
fnAjax("h/a"+(this.index+1)+".html",function (str){
// alert(str);
divs[_this.index].innerHTML=str;
});
}
};
}
</script>
</head>
<body>
<input type="button" value="按钮1">
<input type="button" value="按钮2">
<input type="button" value="按钮3">
<div style="display:block;">
<p>我是a1</p>
</div>
<div></div>
<div></div>
</body>
</html>
 

项目中关于AJAX的使用总结的更多相关文章

  1. 项目中关于ajax jsonp的使用

    项目中关于ajax jsonp的使用,出现了问题:可以成功获得请求结果,但没有执行success方法总算搞定了,记录一下 function TestAjax() {    $.ajax({       ...

  2. Struts2项目中使用Ajax报错

    在Struts2项目中使用Ajax向后台请求数据,当添加了json-lib-2.3-jdk15.jar和struts2-json-plugin-2.3.4.1.jar两个包时,在result中配置ty ...

  3. JavaWeb项目中使用ajax上传文件

    1.jsp $("#cxsc").click(function(){ var bankId = $("#bankId").val(); var formdata ...

  4. 在.net MVC项目中使用ajax进行数据验证

    1.首先要在网页引入应该引入的js文件 在这里回顾一下在模板页里面挖坑的技术 2.在html中使用html辅助方法 3.验证模型 4验证方法

  5. django项目中的ajax分页和条件查询。

    1,路由 #主页面路由 re_path('article/article_list/', article.article_list,name='article/article_list/'), #分页 ...

  6. Vue.js项目中使用 Ajax 和 FormDate 对象上传文件

    let param = new FormData(); param.append("paths", this.ruleForm.uploadPath); param.append( ...

  7. 实战:vue项目中导入swiper插件

    版本选择 swiper是个常用的插件,现在已经迭代到了第四代:swiper4.常用的版本是swiper3和swiper4,我选择的是swiper3. 安装 安装swiper3的最新版本3.4.2: n ...

  8. C# 动态创建SQL数据库(二) 在.net core web项目中生成二维码 后台Post/Get 请求接口 方式 WebForm 页面ajax 请求后台页面 方法 实现输入框小数多 自动进位展示,编辑时实际值不变 快速掌握Gif动态图实现代码 C#处理和对接HTTP接口请求

    C# 动态创建SQL数据库(二) 使用Entity Framework  创建数据库与表 前面文章有说到使用SQL语句动态创建数据库与数据表,这次直接使用Entriy Framwork 的ORM对象关 ...

  9. JavaEE-09 Ajax与jQuery在JavaEE项目中的使用

    学习要点 JavaScript实现Ajax jQuery实现Ajax JSON JSON-LIB FastJSON JavaScript实现Ajax 认识Ajax 旧版百度地图 百度搜索自动补全 百度 ...

随机推荐

  1. 利用monkeyrunner实现Android屏幕连续截图

    MonkeyRunner 什么是monkeyrunner monkeyrunner工具提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器.通过monke ...

  2. 记录一下自己用到的python logging

    最近想把自己零零散散写的代码嵌成一个应用,要考虑到各方面的debug,把logging看了一下,把用到的记下来. 将日志打印到屏幕 import logging logging.debug(u'调试' ...

  3. jsp 2种include标签的区别

    众所周知,jsp中有2种标签用于包含其他jsp或者文件 1.include指令,其实是java代码 <%@ include file="xxx.jsp"%> 2.jsp ...

  4. logcat错误日志

    http://www.crifan.com/android_log_to_file/ http://www.iteye.com/problems/85431 http://www.cnblogs.co ...

  5. MEMS陀螺仪—MEMS产品中的杀手

    MEMS陀螺仪(gyroscope)将成为MEMS产品的杀手.它已经被大量地应用在消费和汽车产品上.它的性能每两年提高十倍,它的成本却由于集成度和需求量的提高而不断下降.一旦MEMS陀螺仪的价格下降到 ...

  6. matlab-----均值滤波函数的实现

    均值滤波的原理是对图像以一个区域(方形,圆形)等为模板,对该区域内的数据求平均后赋值给区域的中心 这种滤波方式原理简单,但是在滤波的同时会造成图像模糊. 本文将尝试对matlab中的filter2() ...

  7. 续前篇---数据挖掘之聚类算法k-mediod(PAM)原理及实现

    上一篇博文中介绍了聚类算法中的kmeans算法.无可非议kmeans由于其算法简单加之分类效率较高 已经广泛应用于聚类应用中. 然而kmeans并非十全十美的.其对于数据中的噪声和孤立点的聚类带来的误 ...

  8. Oracle 表的常见操作

    --创建表并指定表空间 create table goods( id VARCHAR2(20) primary key, name VARCHAR2(20) NOT NULL, price NUMBE ...

  9. Java导出excel并下载功能

    我们使用的导出并下载功能是利用一个插件叫POI的插件提供的导出功能,很实用:首先先导入Jar包: Jar包下载地址:http://poi.apache.org/   官方文档地址:http://poi ...

  10. 2014 ACM省赛总结

    今年ACM省赛已经过去一个星期左右了,2年的ACM训练是该做个总结了,因为前几日去參加蓝桥杯总决赛,所以没来的及写总结,如今在这小小总结一下吧-- 依晰记得去年省赛时候的样子,如今感觉那时像是个无知的 ...