1. 程式人生 > >JavaScript方式完成Ajax非同步請求的完整過程

JavaScript方式完成Ajax非同步請求的完整過程

<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>無需重新整理整個Web頁面顯示伺服器響應的當前時間</title>
  </head>
  <body>
	
	當前時間:<span id="time"></span><br/>
	<input id="buttonID" type="button" value="獲取當前時間"/><p/>
	
	
	<script type="text/javascript">
		//建立AJAX非同步物件
		function createAJAX(){
			var ajax = null;
			try{
				//如果IE5=IE12的話
				ajax = new ActiveXObject("microsoft.xmlhttp");
			}catch(e1){
				try{
					//如果是非IE的話
					ajax = new XMLHttpRequest();
				}catch(e2){
					alert("你的瀏覽器中不支援非同步物件,請換瀏覽器");
				}
			}
			return ajax;
		}
	</script>

	<script type="text/javascript">
		document.getElementById("buttonID").onclick = function(){
			//NO1)建立AJAX非同步物件
			var ajax = createAJAX();
			//NO2)準備傳送請求
			var method = "GET";
			var url = "${pageContext.request.contextPath}/AjaxTimeServlet?time=" + new Date().getTime();
			ajax.open(method,url);
			//NO3)真正傳送請求體的資料到伺服器,如果請求體中無資料的話,就用null表示
			ajax.send(null);
			
			//-------------------------------------------------------------等待
		
			//NO4)AJAX非同步物件不斷監聽伺服器響應的狀態0-1-2-3-【4】
			//一定要狀態變化後,才可觸發function(){}函式
			//如果狀態永遠是4-4-4-4-4,是不會觸發function(){}函式的
			ajax.onreadystatechange = function(){
				//如果狀態碼為4的話
				if(ajax.readyState == 4){
					//如果響應碼為200的話
					if(ajax.status == 200){
						//NO5)從AJAX非同步物件中獲取伺服器響應的HTML資料
						var nowStr = ajax.responseText;
						
						//NO6)將結果按照DOM規則,動態新增到web頁面指定的標籤中
						var spanElement = document.getElementById("time");
						spanElement.innerHTML = nowStr;
					}
				}
			} 
			
		}
	</script>
	
		
	靜態文字靜態文字靜態文字靜態文字靜態文字靜態文字靜態文字靜態文字靜態文字<br/>
	靜態文字靜態文字靜態文字靜態文字靜態文字靜態文字靜態文字靜態文字靜態文字<br/>
	靜態文字靜態文字靜態文字靜態文字靜態文字靜態文字靜態文字靜態文字靜態文字<br/>
	靜態文字靜態文字靜態文字靜態文字靜態文字靜態文字靜態文字靜態文字靜態文字<br/>
	靜態文字靜態文字靜態文字靜態文字靜態文字靜態文字靜態文字靜態文字靜態文字<br/>
	靜態文字靜態文字靜態文字靜態文字靜態文字靜態文字靜態文字靜態文字靜態文字<br/>

  </body>
</html>

相關推薦

JavaScript方式完成Ajax非同步請求完整過程

<%@ page language="java" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>

ajax非同步請求過程

AJAX AJAX是非同步JavaScript和XML(Asynchronous JavaScript And XML),它是一種方法,允許網頁在不重新加在整個頁面的情況下更新一部分網頁。 AJAX非同步請求的過程 AJAX的核心是XMLHttpRequest物件,其中的方法可以

ajax非同步請求以及Jquery框架封裝的非同步請求方式

一、AJAX - 阿賈克斯 1、什麼是AJAX? Asynchronous Javascript And Xml 是可以建立快速動態網頁的技術。可以實現非同步更新,而不需要載入整個網頁,只加載需要更 新某部分網頁。

原生JavaScript實現ajax非同步請求程式碼

jQuery封裝了JavaScript的一些常用方法,而jQuery中的$ajax(),$get(),$post()是比較常用的方法,也是大家最熟悉,最常用的,但是在面試時,通常面試官,會要求你手寫原生ajax非同步請求的程式碼,此時即便你的jquery學的再好,也是無濟於

ajax非同步請求的常見方式

首先先介紹下ajax,ajax(ASynchronous JavaScript And XML)為非同步的javascript和xml。所謂的非同步和同步是指: 同步:客戶端必須等待伺服器的響應,在等待期間客戶端不能做其他操作。 非同步:客戶端無須等待伺服器的響應,在伺服器處理請求的過程中,客戶端可以進行其他

ajax非同步請求關鍵字提示(適用於註冊使用者時顯示已註冊使用者,避免重複)

1.前端程式碼 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>staff_insert.html</title&

ajax 非同步請求返回只重新整理一次頁面

success:function (res) { if (res == "ok") { // $('#dg').bootstrapTable(('refresh')); if (location.href.indexOf("#reloade

Python爬蟲處理JS翻頁的一種方法,利用Ajax非同步請求

前端方面知識不是很好,只是想解決有關Python爬蟲翻頁的問題 =。=  如有不對,還望指正 瀏覽器:Google 利用區域性更新這種翻頁的方式,同樣需要進行一個url請求,因此我們的目的就是找到這個url 1.分析 如圖所示,頁面翻頁採用了JS的方法 &nb

ajax非同步請求返回的是字串問題

1.返回結果差異 js獲取後列印res.code無結果。因為返回資料格式不正確。 php檔案新增header頭: header('Content-Type:application/json;'); 或者。j s 新增 contentType: "application/j

續上篇,改用struts2實現JQuery的ajax非同步請求

······························································································································· 前面的兩篇因為是在csdn文字上編

jQuery Ajax 非同步請求data引數資料格式的六種方法

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body>

使用Promise/axios封裝ajax非同步請求

先上程式碼 import axios from "axios" export default function ajax(url, data = {}, type = 'GET') { return new Promise(function (resolve, reject)

原生js實現ajax非同步請求

function createXMLHttpRequest() { var xmlHttp; try { xmlHttp = new XMLHttpRequest(); } catch (e)

ajax 非同步請求向後臺傳陣列型別資料,後臺無法接收的原因

<select class="selectpicker" multiple id="orgList"> <option value="1">廣東省</option> <option value="2">廣西省&l

jquery實現ajax非同步請求

前端程式碼: <html> <head> <meta charset="UTF-8"> <title>非同步請求</title> <script type="text/javascript" src="jquery-

一種標記是否為AJAX非同步請求的思路

有時候,對於同一URL請求,我們希望根據該請求是非同步請求還是同步請求進行不同的響應。這裡簡單介紹一種判斷的思路。如果你又更好的辦法,希望你能與我分享。 首先,在傳送AJAX非同步請求的時候,為請求的頭部新增一個"isAjax"的頭部標識: 這並非是W3C的標準,目前也不知道這樣做是否會產生什麼不良效應,

java判斷請求是否ajax非同步請求

java判斷請求是否ajax非同步請求         解決方法: if (request.getHeader("x-requested-with") != null && request.getHea

ajax非同步請求資料,用bootstrap中的tree模板實現tree

後臺資料格式json資料data: {"0":[{"id":1,"fatherId":0,"typeName":"測試","typeIndex":0,"typeStatus":"1"}], "1":[{"id":2,"fatherId":1,"typeName":"測試類別

web 會話超時,請求(http請求和ajax非同步請求)處理

@Overridepublic void doFilter(ServletRequest request, ServletResponse response,FilterChain filterChain) throws IOException, ServletException {HttpServletRe

Ajax非同步請求--readyState

概述 XMLHttpRequest.readyState 屬性返回一個 XMLHttpRequest 代理當前所處的狀態。一個 XHR 代理總是處於下列狀態中的一個: readyState 狀態描述 狀態描述