Double_ycn
(Double_ycn)
金牌会员
 
版主
UID 18281
精华
6
积分 1618
帖子 1498
金钱 1558 喜悦币
威望 60
人脉 0
阅读权限 70
注册 2003-2-8
状态 离线
|
[广告]: q
m
ajax简析
最近看ajax开始流行起来。记得公司在去年的时候渐渐使用该技术。为了更方便的交互,我把他们封装成分function。下面共享给大家。
<?php /** *功能: 不刷新页面调用url *参数: url: 要调用的url backFunc: 状态改变后调用的函数 *说明: // retrieve XML document (reusable generic function); // parameter is URL string (relative or complete) to // an .xml file whose Content-Type is a valid XML // type, such as text/xml; XML source must be from // same domain as HTML file
*/ var isIE; /*记录调用的对象变量,在backFunc函数里要还要置为空*/ var requestObj; /*接收url echo出来的值,backFuncs第一个参数接收*/ var backFuncs;
/** 是否返回xml状态,数据 要想正确得到xml数据,还需要在url页面里加入'Content-type: text/xml' */ var returnXml = false; //var method = 'GET';//GET/POST两种方式 function loadPage(url,backFunc,isXml,method){ try{ if( 0 == url.length) return false; backFuncs = backFunc; returnXml = isXml; if(null == method) method = 'GET';
// branch for native XMLHttpRequest object if (window.XMLHttpRequest) { requestObj = new XMLHttpRequest(); //requestObj.onreadystatechange = eval(backFunc); requestObj.onreadystatechange = inceptLoadPage; requestObj.open(method, url, true); requestObj.setRequestHeader("text","text"); requestObj.send(); // branch for IE/Windows ActiveX version } else if (window.ActiveXObject) { isIE = true; requestObj = new ActiveXObject("Microsoft.XMLHTTP"); if (requestObj) { //requestObj.onreadystatechange = eval(backFunc); requestObj.onreadystatechange = inceptLoadPage; requestObj.open(method, url, true); requestObj.setRequestHeader("text","text"); requestObj.send(); } } return true; }catch(e){} }//end
/** *功能: 为loadPage提供的回掉函数 *说明: 建议使用xml格式的返回值 readyState Object status integer: 0 = uninitialized 1 = loading 2 = loaded 3 = interactive 4 = complete
requestObj.readyState == 4 loaded(还在载入) requestObj.status == 200 ok(载入完成)
requestObj.responseText ok后得到的返回文本(是从url页面echo出来的值 */ function inceptLoadPage() { // only if req shows "loaded" try{ if (requestObj.readyState == 4) { // only if "OK" if (requestObj.status == 200) { if(false == returnXml){//不返回xml if(null != requestObj.responseText) parm = requestObj.responseText; else parm = ''; } else{ parm = requestObj.responseXML; } /* alert(requestObj.responseXML); */ backFuncs +="('"+parm+"')"; //alert(backFuncs); eval(backFuncs); requestObj=null; } else { alert("请检查您载入的URL是否正确!"); } } } catch(e){ // alert(e.message) }; }// ?> 上面是ajax的js实现部分。。。
|  北京亿中邮信息技术有限公司长期招聘PHP程序员。有兴趣的朋友可以发简历到yangyu@zhanzuo.net。
|
|