Ajax基礎入門day01

1.什麼是ajax

              Asynchronous   JS   And   Xml  異步JS 和  XML

2.ajax 技術構成 


           以html 爲骨架 
           以css 爲渲染手段
           以js 作爲主要的操作語言 
           以XML  或者 JSON 作爲數據傳輸格式 
           以 XMLHttpRequest  作爲請求 和 響應的處理對象 

3.ajax 的優點 

  異步請求 
  局部刷新 

4.使用js 創建 XMLHttpRequest 或者ActiveObject("Microsoft.XMLHTTP")

function   createXHR(){
    var  xhr = null;
    // 如果瀏覽器支持 XMLHttpRequest
    if(this.XMLHttpRequest){
        xhr = new  XMLHttpRequest();
    }else{
        xhr = new  ActiveXObject("Microsoft.XMLHTTP");
    }
    //alert(xhr);
    return  xhr;
}

5.XMLHttpRequest 的API

function sender(){
// 準備發送Http 請求 
   var  xhr = createXHR(); 
   xhr.open(type,url,async); 
       type 請求的方式   string 類型   取值有  get  post put delete
       url  請求的路徑   string 類型   hello.do    http://localhost:....
       async  是否異步   boolean 類型  默認是 true  
   // 註冊數據處理函數 
   xhr.onreadystatechange = 數據處理函數;
   xhr.onreadystatechange = function(){
       // 獲取請求狀態  readyState   http的狀態碼是 200
       if(xhr.readySate == 4  && xhr.status == 200){
            // 獲取服務器返回的數據 
            var text  = xhr.responseText;       
       }
   };
   // 發送請求 
   xhr.send(null);
}

練習1

首先編寫一個servlet  可以返回  10000以內的隨機數。
 然後寫一個 html 頁面 上面有一個點擊按鈕  按鈕上顯示發送ajax 請求 ,把ajax返回的數據
 顯示html 頁面的一個span 標記上.

servlet代碼的書寫
 	@WebServlet("/randomVaule.do")
public class XdlRandomValueServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		Random random = new Random();
		int a = random.nextInt(10000);
		PrintWriter pWriter = response.getWriter();
		pWriter.write(""+a);
		pWriter.close();
	}
html代碼的書寫
 <script type="text/javascript">
<!-- 使用js 創建 XMLHttpRequest -->
function createXHR(){
	var xhr = null;
	if (this.XMLHttpRequest) {
		xhr = new XMLHttpRequest();
	} else {
		xhr = new ActiveObject("Microsoft.XMLHTTP");
	}
	//alert(xhr);
	return xhr;
}
</script>
<script type="text/javascript">
	function sendAJAX() {
		  // 準備發送Http 請求 
		var xhr = createXHR();
		xhr.open('post', 'randomVaule.do', true);
		 // 註冊數據處理函數 
		xhr.onreadystatechange=function(){
		    // 獲取請求狀態  readyState   http的狀態碼是 200
			if(xhr.readyState==4 && xhr.status==200){
				// 獲取服務器返回的數據 
				var text = xhr.responseText;
				//給網頁中標籤設置內容
				document.getElementById("sp1").innerHTML=text;
			}
		};
		//發送請求
		xhr.send(null);
	}
</script>
</head>
<body>
	<span id="sp1"></span>
	<input type="button" value="發送Ajax 請求" onclick="sendAJAX()">
</body>

練習2

首先編寫一個servlet 可以返回按照 yyyy-MM-dd hh:mm:ss 的系統日期字符串。
然後寫一個html頁面 上面有一個點擊按鈕,按鈕上顯示發送ajax請求,把Ajax返回的數據顯示到html頁面的一個span標籤上。

//創建一個名爲XdlDateServlet的servlet
@WebServlet("/date.do")
public class XdlDateServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		Date date = new Date();
		SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
		String time = sf.format(date);
		PrintWriter pWriter = response.getWriter();
		pWriter.write(time);
		pWriter.close();
	}

}


 

// Html頁面的編寫
<script type="text/javascript">
function createXHR(){
	var xhr = null;
	if (this.XMLHttpRequest) {
		xhr = new XMLHttpRequest();
	} else {
		xhr = new ActiveObject("Microsoft.XMLHTTP");
	}
	//alert(xhr);
	return xhr;
}
</script>
<script type="text/javascript">
function sendAJAX() {
	  // 準備發送Http 請求 
	var xhr = createXHR();
	xhr.open('post', 'date.do', true);
	 // 註冊數據處理函數 
	xhr.onreadystatechange=function(){
	    // 獲取請求狀態  readyState   http的狀態碼是 200
		if(xhr.readyState==4 && xhr.status==200){
			// 獲取服務器返回的數據 
			var text = xhr.responseText;
			//給網頁中標籤設置內容
			document.getElementById("sp2").innerHTML=text;
		}
	};
	xhr.send(null);
}
</script>
</head>
<body>
	<span id="sp2"></span>
	<input type="button" value="ajax請求" onclick="sendAJAX()">
</body>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章