程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2EE >> 快速、簡便的使用AJAX技術操作的三部曲

快速、簡便的使用AJAX技術操作的三部曲

編輯:J2EE
其實AJAX並不復雜,自從AJax技術出來後,天花亂墜的框架紛紛出台,搞得技術開發人員無從下手,baidu google裡也有很多例子,大都是非常復雜。 其實就web開發而言,AJAX技術只是一個配合,完全沒有必要本末倒置,是一種頁面優化的技術,也就是說,如何去優化我們的web頁面才是AJax的重頭戲。下面我舉個很簡單的例子,可以滿足大部分的業務需求。(當然,如果是很專業的頁面要求,可以去參考那些復雜的框架) 第一步: 寫一個後台的“接口”,這個可以用任何語言來實現,只要能返回http報文就可以了,我這裡以webwork後台代碼舉個例子 public String hotWeek() throws Exception{ HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("text/XML; charset=gb2312"); PrintWriter out = response.getWriter(); StringBuffer insertHotHtml = new StringBuffer(); insertHotHtml.append(" "); insertHotHtml.append(" "); insertHotHtml.append(" "); insertHotHtml.append(""); insertHotHtml.append(""); out.print(insertHotHtml.toString()); //返回一個有表格的HTTP報文 return null; } 不用java的朋友根本不用管這些,只要記住,能返回一個HTTP報文,比如一個靜態網頁也可以。 第二步 : 在頁面裡加入下面這段Javascript代碼 var xmlHttp; function createXMLHttpRequest(){ if (window.ActiveXObject){ xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } else if (window.XMLHttpRequest){ xmlHttp = new XMLHttpRequest(); } } function startAJaxRequest(method,async,actionUrl,data, invokeMethod){ createXMLHttpRequest(); xmlHttp.open(method, actionUrl, async); xmlHttp.onreadystatechange = handleStateChange; xmlHttp.send(data); function handleStateChange(){ if(xmlHttp.readyState == 4){ if(xmlHttp.status == 200){ var nodeId = XMLHttp.responseText; if (nodeId==noPermission){ alert(你沒有權限訪問此操作!); }else if( (falseIndex = nodeId.indexOf("false||"))!= -1 ){ alert(操作失敗,可能的原因為: + nodeId.substring( falseIndex+7, nodeId.length) + "!"); }else if(nodeId==false){ alert(操作失敗,請和管理員聯系!); }else ...{ if (invokeMethod == undefined){ getResult(nodeId); } else { invokeMethod(nodeId); } } } } } } 我們要用的就是startAJaxRequest(method,async,actionUrl,data, invokeMethod) 這個方法,具體實現,也不可以不用理會,對於IE和Firefox都可以兼容,method 要麼是GET,要麼是POST,async我們一般都設置為true就可以了,data用來傳數據給後台,invokeMethod是指後台返回數據後,前台自動調用什麼方法,如果為空,那麼就默認調用 invokeMethod(nodeId)這個方法。 $(document).ready(function(){ var actionUrl = "./provider!hotWeek.action"; $(body).Html("頁面加載中..."); startAJaxRequest("GET",true,actionUrl,); }); 這裡我是用jQuery的,一個很好用的Javascript框架。 "./provider!hotWeek.action" 就是我們獲取HTTP報文的地址,大家完全可以用 比如 myTable.ASP myTable.PHP只要返回的HTTP報文是符合XML規則的HTML語言就可以了。 第三步: 後台返回後的處理方法 function getResult(nodeId){ $(body).Html(nodeId); } 總結起來,其實只要 startAjaxRequest("GET",true,actionUrl,) 這麼一個方法就可以去滿足大部分AJax的業務需求了,根本沒有必要弄得那麼復雜
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved