1. 程式人生 > >Ajax獲取伺服器時間案例

Ajax獲取伺服器時間案例

頁面:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<title>通過ajax獲取伺服器時間</title>
        <script type="text/javascript">
	     	// 建立ajax物件
	    	function createAjax(){
	    		try{
				return new XMLHttpRequest();// 非IE6瀏覽器,主流瀏覽器支援的
			}catch(e){
				return new ActiveXObject("Microsoft.XMLHTTP");//IE6瀏覽器以下建立的核心物件
			}
	    	} 
	    /* 	function createAjax(){
	    		var ajax;//定義區域性ajax物件
	    		if(window.XMLHttpRequest){   //判斷當前瀏覽器是否有XMLHttpRequest
	    			ajax = new XMLHttpRequest();// 非IE6瀏覽器
	    		} else {
	    			ajax = new ActiveXObject("Microsoft.XMLHTTP");	// IE6瀏覽器
	    		}
	    		return ajax;
	    	}  */
        	// 獲取伺服器時間的方法
        	function clickTime(){
        		// 1.建立ajax
        		var ajax = createAjax();
        		// 2.以非同步方式發出get請求  true:非同步     false:同步
				ajax.open("get","/zq/getTime?"+ new Date().toGMTString(),true); //注意:傳送請求的時候要加時間戳,因為有些瀏覽器是自帶快取功能,如果自帶快取功能,它就不會發送請求去後端,它直接在快取中獲取到資料了
        		// 3.監聽ajax狀態,http響應狀態       (注意:必須放在send之前執行)
        		ajax.onreadystatechange = function(){
          			if(ajax.readyState == 4 && ajax.status == 200){  //ajax已經處理完成並且http響應狀態是200
          				//獲取後臺返回的資料
					/* alert(ajax.responseText ); */
					document.getElementById("time").innerHTML=ajax.responseText;
        			}
        		}
        		// 4.發出請求
        		ajax.send();
        	}
        </script>
	</head>
	<body>
		<input type="button" onclick="clickTime();" value="獲取時間"/>
		<span id="time" style="color: red"></span>
	</body>
</html>

service:

/**
 * 獲取服務端時間:
 * 注意:非同步技術必須加@ResponseBody
 * @author 鄭清
 */
@Controller
public class TimeController {
	
	@RequestMapping("/getTime")
	@ResponseBody
	public String getTimer(HttpServletResponse resp) throws UnsupportedEncodingException{
		resp.setContentType("text/html;charset=utf-8");//解決亂碼問題
		System.out.println(new Date().toLocaleString());
		return new Date().toLocaleString();
	}
	
}

執行效果: