[-項目隨筆-] Ajax在Tapestry中的應用

來源:互聯網
上載者:User

執行個體:

1.  Ajax登入的優點:如果輸入密碼錯誤,頁面無重新整理。

<script language="javascript">

//定義XMLHttpRequest對象執行個體
var http_request = false;
//定義可複用的http請求發送函數
function send_request(method,url,content,responseType,callback) {//初始化、指定處理函數、發送請求的函數
 http_request = false;
 //開始初始化XMLHttpRequest對象
 if(window.XMLHttpRequest) { //Mozilla 瀏覽器
  http_request = new XMLHttpRequest();
  if (http_request.overrideMimeType) {//設定MiME類別
   http_request.overrideMimeType("text/xml");
  }
 }
 else if (window.ActiveXObject) { // IE瀏覽器
  try {
   http_request = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
   try {
    http_request = new ActiveXObject("Microsoft.XMLHTTP");
   } catch (e) {}
  }
 }
 if (!http_request) { // 異常,建立對象執行個體失敗
  window.alert("不能建立XMLHttpRequest對象執行個體.");
  return false;
 }
 if(responseType.toLowerCase()=="text") {
  //http_request.onreadystatechange = processTextResponse;
  http_request.onreadystatechange = callback;
 }
 else if(responseType.toLowerCase()=="xml") {
  //http_request.onreadystatechange = processXMLResponse;
  http_request.onreadystatechange = callback;
 }
 else {
  window.alert("響應類別參數錯誤。");
  return false;
 }
 // 確定發送請求的方式和URL以及是否非同步執行下段代碼
 if(method.toLowerCase()=="get") {
  http_request.open(method, url, true);
  http_request.setRequestHeader("If-Modified-Since","0");
 }
 else if(method.toLowerCase()=="post") {
  http_request.open(method, url, true);
  http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
 }
 else {
  window.alert("http請求類別參數錯誤。");
  return false;
 }
 http_request.send(content);
}
// 處理返迴文本格式資訊的函數
function processTextResponse() {
 if (http_request.readyState == 4) { // 判斷對象狀態
  if (http_request.status == 200) { // 資訊已經成功返回,開始處理資訊
   //alert(http_request.responseText);
   alert("Text文檔響應。");
  } else { //頁面不正常
   alert("您所請求的頁面有異常。");
  }
 }
}

function registerCheck() {
 document.getElementById("feedback_info").innerHTML = "";
 var f = document.forms[0];
 if(f.userAccount.value!="" && f.password.value !="" ){
  document.getElementById("feedback_info").innerHTML = "正在處理請求,請稍後...";
  send_request("POST","?service=page/Register&userAccount="+f.userAccount.value+"&password="+f.password.value,null,"text",showFeedbackInfo);
 }
 else {
  document.getElementById("feedback_info").innerHTML = "請輸入正確的使用者名稱和密碼。";
 }
}
function showFeedbackInfo() {
 if (http_request.readyState == 4) { // 判斷對象狀態
 //alert(http_request.responseText);
  if (http_request.status == 200) { // 資訊已經成功返回,開始處理資訊
   //alert(http_request.responseText);
   if(http_request.responseText=='OK'){
    document.forms[0].submit();
   }
    else{
    document.getElementById("feedback_info").innerHTML = http_request.responseText;
   }

  } else { //頁面不正常
   alert("您所請求的頁面有異常。");
  }
 }
}
</script>

2.  Ajax實現定時重新整理。(待續)

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.