学了一天的ajax,学的懵懵懂懂的啊。
下面是我学到的东西:
1:ajax与服务器端语言无关,包含了8种技术,分别为:javascript,xml,xstl,xhtml,dom,css,xmlhttprequest。(现在还不懂什么是xstl,对xmlhttprequest的概念也模模糊糊)。
2:ajax给服务端返回三种格式的数据,分别为文本格式,xml格式,json格式。未知浏览器的情况下用xml格式,否则尽量选用json格式,它的扩展性极好。
3:无刷新的数据交换技术有:ajax,flash,框架,iframe。后两个同源。
4:然后就是ajax的工作原理了:
a:创建ajax引擎:(不同的浏览器创建XMLHttpRequest对象的方法是有差异的,有两种方法)
a1:使用js 的try..catch..
function getXmlHttp()
{ var xmlHttp;
try{
//firefox,oprea ,safari
xmlHttp=new XMLHttpRequest();}
catch(e){
//internet Explorer
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");}
catch(e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}
catch(e){
alert("您的浏览器不支持AJAX!");
return false;}
} }
} }
a2:有更简单但不是很规范的方法:
function getxmlHttpObject(){
var xmlHttpRequest
if(window.ActiveXObject){xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP");}else
{xmlHttpRequest=new XmlHttpRequest();}
return xmlHttpRequest;
}
5:ajax经典案例—无刷新验证用户名(get):
ajax 模板代码
var http_request;
function sendHttpRequest(){
if(window.ActiveXObject){ http_request=new ActiveXObject(“Microsoft.XMLHTTP”); }
else{http_request=new XMLHttpRequest();}
if(http_request){var url=“发送请求给php”;
http_request.open(“GET”,url,true); //如果 设为false表示同步,这样可以直接在if使用 http_request.responseText
http_request.onreadystatechange=chuli;
http_request.send();
}
}
function chuli(){
if(http_request.readyState==4){
if(http_request.status==200){var res=http_request.responseText; //返回的是文本
根据返回的文本做相应的处理即可}
}}
6:无刷新验证用户名(post)
ajax 模板代码
var http_request;
function sendHttpRequest(){
if(window.ActiveXObject){ http_request=new ActiveXObject(“Microsoft.XMLHTTP”); }
else{http_request=new XMLHttpRequest();}
if(http_request){var url=“发送请求给servlet或action”;
http_request.open(“POST",url,true);
http_request.setRequestHeader(“Content-Type”,”application/x-www-form-urlencoded”);
http_request.onreadystatechange=chuli;
http_request.send(“name=hsp&email=kk@sohu.com”);
}
}
function chuli(){
if(http_request.readyState==4){
if(http_request.status==200){var res=http_request.responseText; //返回的是文本
根据返回的文本做相应的处理即可}
}}
我学习的是韩顺平老师讲的ajax,感觉很深奥,我上面总结的有错误的地方,望指正。