ajax基本介绍
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML【Extensible Markup Language】 ),是指一种创建交互式网页应用的网页开发技术。对于传统的数据交互而言,数据都是存储在服务器端,想要请求数据或者提交数据,只能同步实现数据的传输,那么在数据提交或者是数据获取的过程中,用户必须等待信号传递、数据处理、数据打包等过程,无法实现用户在等待过程中也能进行其他操作的体验,这对于浏览器而言并不是一个友好的体验。
使用AJAX就解决了这个问题,他通过少量数据的传输,获得改变页面少量信息的数据,再通过JS控制页面的局部刷新,使得页面交互过程不必再刷新整个页面,也不用用户等待数据处理完成。由于用户并不关心数据什么时候处理完成,所以AJAX的实现是一个异步的过程。
总而言之,AJAX的优势就是在于:
- 使用Javascript向服务器提出请求并处理响应而不阻塞用户!核心对象XMLHTTPRequest。通过这个对象,您的 JavaScript 可在不重载页面的情况与Web服务器交换数据。
- AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。
使用原生JS执行流程,主要为以下步骤:
- 创建XMLHttpRequest对象(考虑浏览器兼容的问题)
var xhr = function getXmlHttpObject() {
var objXMLHttp = null;
if (window.XMLHttpRequest) {
objXMLHttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
return objXMLHttp;
}
2、使用XMLHttpRequest对象打开一个连接(指定连接方式和连接地址以及是否同步),接收三个参数,分别为请求的类型,请求的路径以及指明采用同步还是异步,异步请求为true
xhr.open("POST","URL ",true);
3、建立连接之后,需要发送数据。这时候需要对数据有一个说明,所以需要设置请求的头部(请求的类型和请求的编码格式),请求头的设置只能在open之后,send之前
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
4、发送请求,根据请求类型,采用get直接调用send()方法,数据通过url发送大服务器;采用post需要将数据作为方法的参数传递。
xhr.send(data);
5、设置回调函数,当ajax数据传递完成,并且客户端和服务端正常,那么就可以执行ajax完成后的操作。这里是一个事件监听函数,信息在客户端和服务端传递时就会触发该函数,而我们就能在响应完成后的xhr对象上获得服务端返回的数据
ajax状态码(readyState):
0 - (未初始化)还没有调用send()方法
1 - (载入)已调用send()方法,正在发送请求
2 - (载入完成)send()方法执行完成,已经接收到全部响应内容
3 - (交互)正在解析响应内容
4 - (完成)响应内容解析完成,可以在客户端调用了
xhr.onreadystatechange=function(){
//如果readyState为4,表示响应已经被完全接收。
if(xhr.readyState==4){
//如果获得的结果状态代码为200,表示服务端正常返回
if(xhr.status==200){
var txt=xhr.responseText;
document.getElementById("err").innerHTML=txt;
}
}
}
完整代码:
var xhr = getXmlHttpObject();
xhr.open("get", "./users.json", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send();
xhr.onreadystatechange = function() {
//如果readyState为4,表示响应已经被完全接收。
if (xhr.readyState == 4) {
//如果获得的结果状态代码为200,表示服务端正常返回
if (xhr.status == 200) {
var txt = xhr.responseText;
console.log(txt);
}
}
} function getXmlHttpObject() {
var objXMLHttp = null;
if (window.XMLHttpRequest) {
objXMLHttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
return objXMLHttp;
}
ajax基本介绍的更多相关文章
- Ajax【介绍、入门、解决Ajax中文、跨域、缓存】
什么是Ajax Ajax(Asynchronous JavaScript and XML) 异步JavaScript和XML Ajax实际上是下面这几种技术的融合: (1)XHTML和CSS的基于标准 ...
- 关于ajax原理介绍
1.ajax技术的背景 不可否认,ajax技术的流行得益于google的大力推广,正是由于google earth.google suggest以及gmail等对ajax技术的广泛应用,催生了ajax ...
- Ajax简单介绍和使用步骤
Ajax被认为是(Asynchronous(异步) JavaScript And Xml的缩写).现在,允许浏览器与服务器通信而无须刷新当前页面的技术都被叫做Ajax. 同步是指:发送方发出数据后,等 ...
- AJAX入门介绍
在我们平时的开发过程中,经常使用到Ajax数据交互,相信有很大一部分人会使用,可能没太详细了解过Ajax的工作原理.下面我们一起看一下吧! ( 一 ) 什么是Ajax Ajax 即“Asynchron ...
- ajax详细介绍
a.什么是Ajax Asynchronous JavaScript and XML(异步JavaScript和XML) 节省用户操作,时间,提高用户体验,减少数据请求 传输获取数据 ...
- ajax的介绍
$.ajax({ 11 url: "article.asmx/GetArticleByID", 12 type: "POST", 13 datatype: &q ...
- AJax知识介绍
参考:http://www.runoob.com/ajax/ajax-asp-php.html
- AJAX简单介绍
什么是AJAX Ajax 是 AsynchronousJavaScript and XML(以及 DHTML 等)的缩写. HTML 用于建立 Web表单并确定应用程序其它部分使用的字段. ·J ...
- ajax ajax基本介绍
jquery中ajax方法参数详解 url 要求是string类型参数(默认为当前页面地址) 发送请求的地址 type 要求是string类型的参数,请求方式(post或get)默认为get.注意其他 ...
随机推荐
- (四十九)Quartz2D自定义控件
利用Quartz2D来自定义UIImageView: 模仿UIImageView: 设置frame,设置图片. 注意一个细节,自定义的imageView,应该通过重写set方法来设置图片并且重绘,否则 ...
- 关于Android自定义view 你所需要知道的基本函数
开始时之前想吐槽一句..iphone的闹钟,12小时制.我成功的把闹钟订到了下午5:00 导致错过一班飞机.心疼改签费. 候机ing,没有事做,来写一下学习自定义view必须掌握的基本函数.这里只挑一 ...
- 《java入门第一季》之面向对象(重头戏继承来了)
java特性封装.继承.多态.之前对封装做了简单描述(见http://blog.csdn.net/qq_32059827/article/details/51312116),今天分析另一个特性继承性: ...
- OpenGL Shader Key Points (2)
1. Uniform 1.1. Uniform变量 不是所有的变量都是跟顶点一一对应的,如变换矩阵,光源位置等. Uniform变量可以在任何类型的shader中使用,但只能作为输入值,不能在sh ...
- 校招:Vobile阜博通2015校园招聘
关于Vobile阜博通校招(10-11月份),耗时将近一个月,现整理分享给大家. 1 浙大笔试无选择填空,问答题为主,偏语言的个人理解,不在意具体语言方向(C/C++/Java).(1)描述C.C++ ...
- 修改量更新API
/* Update a Modifier header of type 'PRO' (Promotion) */ l_MODIFIER_LIST_rec.active_flag := 'N'; l_M ...
- 基于ARM-contexA9-Linux驱动开发:如何获取板子上独有的ID号
每个CPU,都有它固定的ID号,ID号就是这个CPU唯一的标识,它可能隐含着CPU的生产日期,版本号,型号等等,那么,在我们的这款友善之臂Tiny4412的板子上,我的这个CPU的ID又是多少呢?从我 ...
- Android特效专辑(十)——点击水波纹效果实现,逻辑清晰实现简单
Android特效专辑(十)--点击水波纹效果实现,逻辑清晰实现简单 这次做的东西呢,和上篇有点类似,就是用比较简单的逻辑思路去实现一些比较好玩的特效,最近也是比较忙,所以博客更新的速度还得看时间去推 ...
- android4.2添加重启菜单项
本文主要是针对android4.2关机菜单添加重启功能 A.关机提示 android4.2/frameworks/base/policy/src/com/android/internal/policy ...
- ZeroC Ice IceGrid Node和IceGrid
IceGrid Node介绍 绝大多数分布式系统都有一个共同特点,即分布在各个主机上的节点进程并不是完全独立的,而是彼此之间有相互联系和通信的.集群对集群中的节点有一些控制指令,如部署.启停或者调整某 ...