仅供小白参考。
<?PHP /** Ajax简介,我从W3school中总结一下 我自己感觉ajax就是在页面中开辟了一小块地方,专门刷新使用,大的页面不懂,这个小宽口和后台进行沟通,传递数据,单独刷新 ajax其实就是JS的网络化,在页面不刷新的情况下,通过XMLHttpRequest发送请求 HTML 定义了页面的结构 CSS 美化页面样式 JS 控制页面的行为,和用户互动 ****/ 1.概念 AJAX = 异步JavaScript 和 XML AJAX 是一种用于创建快速动态网页的计数,通过后台与服务器进行少量的数据交换,可以使网页实现异步更新, 同步更新只网页刷新的时候,内容更新 异步更新指网页没有刷新,但是内容改变了 2.AJAX 创建对象 XMLHttpRequest是AJAX的基础 创建XMLHttpRequest对象 所有的浏览器都已经内建了XMLHttpRequest对象 创建XMLHttpRequest对象 <script> var xmlhttp; if (window.XMLHttpRequest) { //如果浏览器已经支持XMLHttpRequest对象 //比如 IE7+ firefox chrom opera safari xmlhttp = new XMLHttpRequest(); }else{ //IE6 IE5 xmlhttp = new ActiveXObjecr("Microsoft.XMLHTTP"); } </script> 3.AJAX 请求 使用XMLHttpRequest对象的 open() he send() 方法 //规定请求类型、url、以及是否异步 open(method,url,async); method 方法有 get和post url 表示要请求的文件的路径 async 表示异步(true)还是同步 //表示把请求发送到服务器上,只有post才用 send(string); xmlhttp.open("GET","test1",true); xmlhttp.send(); GET比POST更加快速简单,大部分都能用 但是,必须用POST的情况 1.无法使用缓存文件的时候,需要更新服务器上的文件 2.向服务器发送大量的数据(由于浏览器或者服务器的限制,GET传输量有限) 3.发送包含未知字符的用户输入的时候,POST比较可靠 使用GET请求的例子 //加后面的随机数是为了防止得到缓存结果,也可以去掉的 xmlhttp.open("GET","./01.PHP?i="+Math.random(),true ); xmlhttp.send(); //通过GET传送数据 xml.http.open("GET","./01.PHP?username=zhangsan&email=zhangsan@163.com",true); 使用POST请求的例子 //传输表单的使用,要使用setRequestHeader来添加HTTP头信息,在send()中添加数据 xmlhttp.open("POST","./01.PHP",true); //必须加上以下这句话。 xmlhttp.setRequestHeader("Content-type","application/x-www/form-urlencode"); xmlhttp.send("username=zhangsan&email=zhangsan@163.com"); 当第三个参数是true时,表示异步的是要,要规定在响应的地方有 onreadystatechange 事件就绪状态的时候就绪的函数 xmlhttp.onreadystatechange = function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200) { alert("准备就绪"); document.getElementById("t1").innerHTML = "ok"; 4. //响应,获得字符串形式的响应数据 document.getElementById("t2").innerHTML = xmlhttp.responseText; //响应,获得xml文件形式的响应格式,并且解析..就是把xml文档读出来 xmlDoc=xmlhttp.responseXML; txt=""; x=xmlDoc.getElementsByTagName("title"); for (i=0;i<x.length;i++) { txt=txt + x[i].childNodes[0].nodeValue + "<br />"; } document.getElementById("myDiv").innerHTML=txt; } } } 5. onreadystatechange 事件 XMLHttpRequest对象的三个属性 分别是: 1.onreadysatechange 储存函数,每当readyState属性改变的时候,都会执行一次 2.readyState 储存XMLHttpRequest的状态 0-4 0:请求没有初始化 1:服务器已经建立连接 2:请求已经收到 3:请求处理中 4:请求完成,并且响应已经就绪 3.state 表示 200:OK 404:未找到页面 因此,只有当readyState ==4 && status == 200 的时候,才表示响应就绪 //readyStatus 每改变一次,onreadystatechange就会执行一次 另外,如果一个页面有多个ajax,应该使用callback() //callback() 是一种一参数传递给另一个函数的函数。意思是一个函数的参数是另一个函数 //这个不会太懂 7.另外,使用ajax可以 1.和ASP/PHP 进行交互,比如提示客户名字,这个我已经写了 2.和数据库进行交互,下拉菜单选择公司,然后列出数据库中的内容 3.和XML文件进行交互,解析xml文件中的内容 //http://www.w3school.com.cn/ajax/ajax_xmlfile.asp 8.AJAX其他的实例 //http://www.w3school.com.cn/example/ajax_examples.asp