日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

AJAX详解教程

發(fā)布時(shí)間:2025/3/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AJAX详解教程 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • AJAX(Asynchronous JavaScript And XML):異步的 JavaScript 和 XML。
  • 本身不是一種新技術(shù),而是多個(gè)技術(shù)綜合。用于快速創(chuàng)建動(dòng)態(tài)網(wǎng)頁(yè)的技術(shù)。
  • 一般的網(wǎng)頁(yè)如果需要更新內(nèi)容,必需重新加載個(gè)頁(yè)面。
  • 而 AJAX通過瀏覽器與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,就可以使網(wǎng)頁(yè)實(shí)現(xiàn)異步更新。也就是在不重新加載整個(gè)頁(yè) 面的情況下,對(duì)網(wǎng)頁(yè)的部分內(nèi)容進(jìn)行局部更新。

同步&異步:

同步:在客戶端向服務(wù)器發(fā)送請(qǐng)求時(shí),用戶需要等待服務(wù)器的返回結(jié)果才能繼續(xù) 異步:在客戶端向服務(wù)器發(fā)送請(qǐng)求時(shí),可以做其他的事情。

AJAX介紹:

  • AJAX(Asynchronous JavaScript And XML):異步的 JavaScript 和 XML。

  • 本身不是一種新技術(shù),而是多個(gè)技術(shù)綜合。用于快速創(chuàng)建動(dòng)態(tài)網(wǎng)頁(yè)的技術(shù)。

  • 一般的網(wǎng)頁(yè)如果需要更新內(nèi)容,必需重新加載個(gè)頁(yè)面。

  • 而 AJAX 通過瀏覽器與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,就可以使網(wǎng)頁(yè)實(shí)現(xiàn)異步更新。也就是在不重新加載整個(gè)頁(yè) 面的情況下,對(duì)網(wǎng)頁(yè)的部分內(nèi)容進(jìn)行局部更新。

原生JS實(shí)現(xiàn)AJAX:

代碼實(shí)現(xiàn)

import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException;@WebServlet("/userServlet") public class UserServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//設(shè)置請(qǐng)求和響應(yīng)的亂碼req.setCharacterEncoding("UTF-8");resp.setContentType("text/html;charset=UTF-8");//1.獲取請(qǐng)求參數(shù)String username = req.getParameter("username");//模擬服務(wù)器處理請(qǐng)求需要5秒鐘/*try {Thread.sleep(5000);} catch (InterruptedException e) {e.printStackTrace();}*///2.判斷姓名是否已注冊(cè)if ("zhangsan".equals(username)) {resp.getWriter().write("<font color='red'>用戶名已注冊(cè)</font>");} else {resp.getWriter().write("<font color='green'>用戶名可用</font>");}}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);} }

html代碼:

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>用戶注冊(cè)</title> </head> <body> <form autocomplete="off">姓名:<input type="text" id="username"><span id="uSpan"></span><br>密碼:<input type="password" id="password"><br><input type="submit" value="注冊(cè)"> </form> </body> <script>//1.為姓名綁定失去焦點(diǎn)事件document.getElementById("username").onblur = function () {//2.創(chuàng)建XMLHttpRequest核心對(duì)象let xmlHttp = new XMLHttpRequest();//3.打開鏈接let username = document.getElementById("username").value;xmlHttp.open("GET", "userServlet?username=" + username, true);//xmlHttp.open("GET","userServlet?username="+username,false);//4.發(fā)送請(qǐng)求xmlHttp.send();//5.處理響應(yīng)xmlHttp.onreadystatechange = function () {//判斷請(qǐng)求和響應(yīng)是否成功if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {//將響應(yīng)的數(shù)據(jù)顯示到span標(biāo)簽document.getElementById("uSpan").innerHTML = xmlHttp.responseText;}}} </script> </html>

原生JS實(shí)現(xiàn)AJAX詳解:

核心對(duì)象:XMLHttpRequest

用于在后臺(tái)與服務(wù)器交換數(shù)據(jù)。可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下,對(duì)網(wǎng)頁(yè)的某部分進(jìn)行更新。

打開鏈接:open(method,url,async):

  • method:請(qǐng)求的類型 GET 或 POST。
  • url:請(qǐng)求資源的路徑。
  • async:true(異步) 或 false(同步)。

發(fā)送請(qǐng)求:send(String params):

  • params:請(qǐng)求的參數(shù)(POST 專用)。

處理響應(yīng):onreadystatechange:

  • readyState:0-請(qǐng)求未初始化,1-服務(wù)器連接已建立,2-請(qǐng)求已接收,3-請(qǐng)求處理中,4-請(qǐng)求已完成,且響應(yīng)已就緒。
  • status:200-響應(yīng)已全部 OK。

獲得響應(yīng)數(shù)據(jù)形式:

  • responseText:獲得字符串形式的響應(yīng)數(shù)據(jù)。
  • responseXML:獲得 XML 形式的響應(yīng)數(shù)據(jù)。

JQuery的GET方式實(shí)現(xiàn)AJAX:

核心語(yǔ)法:$.get(url,[data],[callback],[type]);

  • url:請(qǐng)求的資源路徑。
  • data:發(fā)送給服務(wù)器端的請(qǐng)求參數(shù),格式可以是key=value,也可以是 js 對(duì)象。
  • callback:當(dāng)請(qǐng)求成功后的回調(diào)函數(shù),可以在函數(shù)中編寫我們的邏輯代碼。
  • type:預(yù)期的返回?cái)?shù)據(jù)的類型,取值可以是 xml, html, js, json, text等。

代碼實(shí)現(xiàn):

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>用戶注冊(cè)</title> </head> <body><form autocomplete="off">姓名:<input type="text" id="username"><span id="uSpan"></span><br>密碼:<input type="password" id="password"><br><input type="submit" value="注冊(cè)"></form> </body> <script src="js/jquery-3.3.1.min.js"></script> <script>//1.為用戶名綁定失去焦點(diǎn)事件$("#username").blur(function () {let username = $("#username").val();//2.jQuery的GET方式實(shí)現(xiàn)AJAX$.get(//請(qǐng)求的資源路徑"userServlet",//請(qǐng)求參數(shù)"username=" + username,//回調(diào)函數(shù)function (data) {//將響應(yīng)的數(shù)據(jù)顯示到span標(biāo)簽$("#uSpan").html(data);},//響應(yīng)數(shù)據(jù)形式"text");}); </script> </html>

JQuery的POST方式實(shí)現(xiàn)AJAX:

核心語(yǔ)法:$.post(url,[data],[callback],[type]);

  • url:請(qǐng)求的資源路徑。
  • data:發(fā)送給服務(wù)器端的請(qǐng)求參數(shù),格式可以是key=value,也可以是 js 對(duì)象。
  • callback:當(dāng)請(qǐng)求成功后的回調(diào)函數(shù),可以在函數(shù)中編寫我們的邏輯代碼。
  • type:預(yù)期的返回?cái)?shù)據(jù)的類型,取值可以是 xml, html, js, json, text等。

代碼實(shí)現(xiàn):

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>用戶注冊(cè)</title> </head> <body><form autocomplete="off">姓名:<input type="text" id="username"><span id="uSpan"></span><br>密碼:<input type="password" id="password"><br><input type="submit" value="注冊(cè)"></form> </body> <script src="js/jquery-3.3.1.min.js"></script> <script>//1.為用戶名綁定失去焦點(diǎn)事件$("#username").blur(function () {let username = $("#username").val();//2.jQuery的POST方式實(shí)現(xiàn)AJAX$.post(//請(qǐng)求的資源路徑"userServlet",//請(qǐng)求參數(shù)"username=" + username,//回調(diào)函數(shù)function (data) {//將響應(yīng)的數(shù)據(jù)顯示到span標(biāo)簽$("#uSpan").html(data);},//響應(yīng)數(shù)據(jù)形式"text");}); </script> </html>

JQuery的通用方式實(shí)現(xiàn)AJAX

核心語(yǔ)法:$.ajax({name:value,name:value,…});

  • url:請(qǐng)求的資源路徑。
  • async:是否異步請(qǐng)求,true-是,false-否 (默認(rèn)是 true)。
  • data:發(fā)送到服務(wù)器的數(shù)據(jù),可以是鍵值對(duì)形式,也可以是 js 對(duì)象形式。
  • type:請(qǐng)求方式,POST 或 GET (默認(rèn)是 GET)。
  • dataType:預(yù)期的返回?cái)?shù)據(jù)的類型,取值可以是 xml, html, js, json, text等。
  • success:請(qǐng)求成功時(shí)調(diào)用的回調(diào)函數(shù)。
  • error:請(qǐng)求失敗時(shí)調(diào)用的回調(diào)函數(shù)。

代碼實(shí)現(xiàn):

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>用戶注冊(cè)</title> </head> <body><form autocomplete="off">姓名:<input type="text" id="username"><span id="uSpan"></span><br>密碼:<input type="password" id="password"><br><input type="submit" value="注冊(cè)"></form> </body> <script src="js/jquery-3.3.1.min.js"></script> <script>//1.為用戶名綁定失去焦點(diǎn)事件$("#username").blur(function () {let username = $("#username").val();//2.jQuery的通用方式實(shí)現(xiàn)AJAX$.ajax({//請(qǐng)求資源路徑url:"userServletxxx",//是否異步async:true,//請(qǐng)求參數(shù)data:"username="+username,//請(qǐng)求方式type:"POST",//數(shù)據(jù)形式dataType:"text",//請(qǐng)求成功后調(diào)用的回調(diào)函數(shù)success:function (data) {//將響應(yīng)的數(shù)據(jù)顯示到span標(biāo)簽$("#uSpan").html(data);},//請(qǐng)求失敗后調(diào)用的回調(diào)函數(shù)error:function () {alert("操作失敗...");}});}); </script> </html>

總結(jié)

以上是生活随笔為你收集整理的AJAX详解教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。