AJAX入門學習總結

來源:互聯網
上載者:User
文章目錄
  • XMLHttpRequest有一些常用屬性:
  • XMLHttpRequest的常用函數:
  • 知識回顧:
一、AJAX簡介

AJAX的全稱是非同步JavaScript和XML;主要用途是對於整個頁面進行局部更新;

AJAX出現的目的是因為一般網頁如果稍作改動,就會重建整個頁面代碼,消耗大。而AJAX能夠只更新局部頁面;

AJAX是在JavaScript代碼中編寫的;

二、XMLHttpRequest

XMLHttpRequest是整個AJAX的核心,我們通過XMLHttpRequest進行發送和接受資料;

為了取得此對象,我們需要通過以下代碼:

<script language="Javascript">var xmlHttp;function create(){if(window.XMLHttpRequest){xmlHttp = new XMLHttpRequest();}else{xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");}}</script>

瀏覽器有兩種核心,IE核心和firefox核心;因此需要根據目前使用者瀏覽器進行判斷;

XMLHttpRequest有一些常用屬性:

(1)readyState :請求的狀態;(4 表示已經響應完畢)

(2)onreadystatechange :readyState改變時調用,通常用於回呼函數的傳回值;

(3)responseText :返回純文字對象;

(4)responseXML :返回XML資料的對象;

(5)status :返回當前HTTP的狀態(200為正常)

XMLHttpRequest的常用函數:

(1)open("GET/POST","url"); : 建立請求,指定是post還是get,並且指定發送的目的地URL;

(2)send(param); :發送請求,通常param=null;

知識回顧:

在JavaScript中

(1)document.getElementById("name").innerHTML可以設定此控制項的值;

(2)onblur事件表示失去焦點時調用;

登入非同步驗證代碼:

這裡使用DAO進行串連資料庫,因此這段代碼忽略;

<html><head><title>Title</title><script language="Javascript">var xmlHttp;var flag = false;function create(){if(window.XMLHttpRequest){xmlHttp = new XMLHttpRequest();}else{xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");}}function checkId(id){create();xmlHttp.open("GET","CheckServlet?id="+id);xmlHttp.send(null);flag = true;xmlHttp.onreadystatechange = callback;document.getElementById("msg").innerHTML = "正在驗證";}function callback(){if(xmlHttp.readyState==4){if(xmlHttp.status==200){var text = xmlHttp.responseText;if(text=="true"){document.getElementById("msg").innerHTML = "id正確";}else{document.getElementById("msg").innerHTML = "id重複";}}}}function ischecked(){return flag;}</script></head><body><form action="" method="post" onSubmit="return ischecked()">使用者ID:<input type="text" name="id" onBlur="checkId(this.value)"/><br />姓  名:<input type="text" name="name"/><br />密  碼:<input type="text" name="password"/><br /><input type="submit" value="註冊"/><span id="msg"></span></form></body></html>

注意:

(1)調用回呼函數不需要加括弧。

(2)readyState的拼字;

CheckServlet.java

package org.servlet;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;import org.dao.factory.*;public class CheckServlet extends HttpServlet{public void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{String id = req.getParameter("id");PrintWriter out = resp.getWriter();boolean flag=false;try{flag = DAOFactory.getInstance().findById(id);}catch(Exception e){}if(flag){out.print("true");}else{out.print("false");}} }

非同步驗證註冊的優點:

(1)能夠在沒有提交前就知道使用者名稱是否有效,現在使用的很多。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.