ajax的过程
来源:互联网 发布:mac 关闭已打开的程序 编辑:程序博客网 时间:2024/05/20 10:13
AJAX=Asynchronous JavaScript and XML(异步的JavaScript和XML)
AJAX不是一种新的语言,而是一种使用现有标准的新方法。
AJAX在不重新加载整个页面的情况下,实现与服务器的数据交换刷新局部页面。
详细过程:
- 创建XMLHttpRequest对象,也就是创建一个异步调用对象
- 创建一个新的HTTP请求,并指定请求方式、URL、是否异步调用
- 设置响应HTTP请求状态变化函数
- 发送HTTP请求
- 获取异步调用返回的函数
- 使用javascript和DOM实现局部刷新
1.创建XMLHttpRequest对象
//创建XMLHttpRequest对象var xhr;if(window.XMLHttpRequest){ //for ie7+,firefox,Chrome,Opera,Safari xhr=new XMLHttpRequest();}else{ //for ie6,ie5 xhr=new ActiveXObject("Microsoft.XMLHTTP");}
2.向服务器发送请求
//向服务器发送请求//open()规定发送请求的类型,url,是否异步处理xhr.open("GET","test.txt",true);xhr.send();
GET
和POST
,与POST
相比,GET
传输速度快,效率高,大部分情况下使用GET
,在以下几种情况中使用POST
:
- 无法使用缓存文件(更新服务器上的文件或数据)
- 向服务器发送大量数据 (
POST
没有数据量限制) - 发送包含未知字符的用户输入时,
POST
比GET
更稳定,可靠。
3.服务器响应
//如果来自服务器的响应不是XML文件,使用responseText属性myDiv.innerHTML=xhr.responseText;//如果来自服务器的响应是XML文件xmlDoc=xhr.responseXML;txt="";x=xmlDoc.getElementsByTagName("ARTIST");var myDiv= document.getElementById("myDiv");for (i=0;i<x.length;i++){ txt=txt + x[i].childNodes[0].nodeValue + "<br />"; }myDiv.innerHTML=txt;
4.readyState
//当readyState改变时,就会触发onreadystatechange事件//readyState属性存有XMLHttpRequest对象的状态信息//onreadystatechange事件会触发5次,对应readyStates的5个状态(0~4)xhr.onreadystatechange==function(){ if(xhr.readyState == 4 && xhr.status ==200){ myDiv.innerHTML=xhr.resopnseText; }}//或者使用Callback函数function myFun(){ loadXMLDoc("test.txt",function(){ if(xhr.readyState==4 && xhr.status ==200){ myDiv.innerHTML=xhr.resopnseText; } });}
XMLHttpRequest对象的三个重要属性:
- onreadystatechange 存储函数,当readyState属性改变时就会调用该函数
- readyState 存有XMLHttpRequest对象的状态
0 请求未初始化 对象已创建
1 服务器连接已建立 open调用
2 请求已接收 send调用
3 请求处理中 正在接收数据
4 请求已完成,响应已就绪 完成 - status
200 ‘ok’
404 未找到页面
1 0
- AJAX的运作过程
- ajax的过程
- 使用ajax的过程
- ajax的实现过程
- ajax 的过程
- AJAX的整个页面过程
- ajax的基本使用过程
- javascript的ajax请求过程
- JQuery的ajax请求过程
- ajax过程
- ajax过程
- Ajax过程
- ajax过程
- Ajax基本概念以及JS实现Ajax的过程
- AJAX的整个页面过程(续)
- php里面使用ajax的基本过程
- 关于ajax中文乱码的解决过程
- ssm + ajax过程中遇到的问题
- MongoDB_Java连接MongoDB数据库 Mongo / MongoClient 的使用
- Java Se----接口
- MD5的使用
- matlab数字图像处理(2)
- JVM——高效并发
- ajax的过程
- linux 网络常见的定义问题
- Java从零开始
- array_merge和数组直接相加的区别
- android属性之excludeFromRecents
- iOS-推送实现的原理
- HDU2029
- HashMap
- Android SwipeSelector