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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

34、JS/AJAX

發布時間:2024/1/17 javascript 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 34、JS/AJAX 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

1)回顧JS中核心內容

2)了解WEB1.0WEB2.0時代的技術與特點

3)理解AJAX的產生背景、工作原理與特點

4)掌握AJAX常用API及應用

?

聲明:服務端使用Servlet技術

?

?

一)什么是JavaScript【以下簡稱JS

??? JS是

?? (1)基于對象

??????? JS本身就有一些現成的對象可供程序員使用,例如:Array,Math,String。。。

??????? JS并不排除你可以自已按一定的規則創建對象

?? (2)事件驅動

??????? JS代碼寫好后,需要外界觸發后,方可運行,例如:單擊事件,定時執行,。。。

?? (3)解釋性

?????????? ??? 每次運行JS代碼時,得需要將原代碼一行一行的解釋執行

??????? 相對編譯型語言(例如:Java、C++)執行速度相對較慢

?? (4)基于瀏覽器的動態交互網頁技術

?????????? ??? 如果JS嵌入到HTML中,可以不需要服務器支持,直接由瀏覽器解釋執行

?????????? ??? 如果JS嵌入到JSP或Servlet中,必需要服務器支持,直接由瀏覽器解釋執行

?? (5)嵌入在HTML標簽中

?????????? ??? JS必須嵌入到一個名叫<script src="引入外部js文件"></script>的標簽中,方可運行

??? 腳本語言

?

?

二)JS中的三種類型

?? (1)基本類型:number,string,boolean

??????? number包含正數,負數,小數

?????????? ??? string由''或""定界

???????????????????? boolean由true或false,但js中的boolean也包含更多情況,例如:存在表示true,不存在表示false

?????? var num = 100;

?????? var str = "哈哈";

?????? var flag = false;

?????? window.alert(num);

?????? window.alert(str);

?????? window.alert(flag);

?

?? (2)特殊類型:null,undefined

?????????? ??? null表示一個變量指向null

?????????? ??? undefined表示一個變量指向的值不確定

?????? var array = null;

?????? var student;

?????? alert(array);

?????? alert(student);

?

?? (3)復合類型:函數,對象,數組

?????????? ??? 對象包含內置對象和自定義的對象

?

?

三)JS中有三種定義函數的方式

?? (1)正常方式:function mysum(num1,num2){return num1+num2;}

??????? function mysum(num1,num2){

?????????? return num1 + num2;

?????? }

?????? var myresult = mysum(100,200);

?????? alert("myresult="+myresult);

?

?? (2)構造器方式:new Function("num1","num2","return num1+num2;")

?????? var youresult = new Function("num1","num2","return num1+num2");

?????? alert( youresult(1000,2000) );

?

?? (3)直接量或匿名或無名方式:var mysum = function(num1,num2){return num1+num2;}

var theyresult = function(num1,num2){

???????????????????????? return num1 + num2;?

???????????????????? ?}

?????? alert( theyresult(10000,20000) );

?

?

四)JS中有四種對象

?? (1)內置對象 :Date,Math,String,Array,。。。

?????? var str = new Date().toLocaleString();

?????? window.document.write("<font size='44' color='red'>"+str+"</font>");

?

?? (2)自定義對象:Person,Card,。。。?

?????? function Student(id,name,sal){

?????????? //this指向s引用

?????????? this.id = id;

?????????? this.name = name;

?????????? this.sal = sal;

?????? }

?????? var s = new Student(1,"波波",7000);

?????? document.write("編號:" + s.id + "<br/>");

?????? document.write("姓名:" + s.name + "<br/>");

?????? document.write("薪水:" + s.sal + "<br/>");

?

?? (3)瀏覽器對象: window,document,status,location,history。。。

function myrefresh(){

???????????? window.history.go(0);

??????? }

?

?? (4)ActiveX對象:ActiveXObject("Microsoft.XMLHTTP"),。。。

?

?

五)演示JS對象的屬性,方法和事件的使用

?? (1)window.location.href

?????????? var url = "04_array.html";

?????????? window.location.href = url;

?

?? (2)form.submit()

<form action="/js-day01/04_array.html" method="POST">

?????? <input type="button" value="提交到服務端" οnclick="doSubmit()"/>

??? </form>

??? <script type="text/javascript">

?????? function doSubmit(){

?????????? //表單提交

?????????? document.forms[0].submit();

?????? }

??? </script>

?

?? (3)inputElement.onblur = 函數

?? (4)document.createElement(“img”)

?? (5)imgElement.style.width/height

?

?

六)回顧傳統Web應用請求和響應特點【顯示當前時間】

?? (1)請求:瀏覽器以HTTP協議的方式提交請求到服務器

?? (2)響應:服務器以HTTP協議的方式響應內容到瀏覽器

?????????? ????? ????注意:HTTP是WEB大眾化非安全協議??????? ???????

??????????????? HTTPS是WEB安全協議,是基于HTTP協議的,且加了一些加密等特殊功能,常用于在線支付,或者是需要安全性較高的網站中,例如:12306網站????????

?????????? ????? ????HTTP請求有三個部份組成:請求行,請求頭,請求體

?????????? ????? ????HTTP響應有三個部份組成:響應行,響應頭,響應體? ??????????????????????????????????????????

?? (3)狀態欄:有明顯的進度條刷新現象,如果服務器響應較慢的話,進度條刷新也會變慢,IE9等中高版本瀏覽器,有明顯轉圈圈圖標

?? (4)歷史欄:會收集原來已訪問過的web頁面,進行緩存

?? (5)缺點:不需變化的大量數據,也全部刷新,造成瀏覽器加載和處理負擔???

?? (6)可改進的地方:讓不需變化的大量數據,原封不動,不用緩存到歷史欄中,無需全部刷新,只刷新某些需要變化的數據區域,例如:當前時間的區域

??? 當前時間:<span>${requestScope.str}</span><br/>

??? <input type="button" value="同步方式提交"/>

???????

??? <script type="text/javascript">

?????? //定位button按鈕,同時添加單擊事件

?????? document.getElementsByTagName("input")[0].onclick = function(){

?????????? var url = "${pageContext.request.contextPath}/TimeServlet?id="+new Date().getTime();

?????????? window.location.href = url;

?????? }

??? </script>

???????

public class TimeServlet extends HttpServlet {

??? public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

?????? System.out.println("TimeServlet::doGet");

?????? SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

?????? String str = sdf.format(new Date());

?????? request.setAttribute("str",str);

??? ??? request.getRequestDispatcher("/06_time.jsp").forward(request,response);

??? }

}

?

?

七)什么是AJAXAsynchronous異步的JSXML】,工作原理與特點

?? (1)什么是同步:

?????????? ??? 請求1->響應1->請求2->響應2->

??????? Web1.0時代

?

?? (2)什么是異步:

?????????? ??? 請求1->請求2->請求3->響應1->響應2->響應3->

?????????? ??? 請求1->響應1->請求2->請求3->響應2->響應3->

?????????? ??? Web2.0時代

??????? 項目中:Web1.0為主(整個瀏覽器刷新),Web2.0為輔(瀏覽器局部刷新)

?

?? (3)什么是AJAX

???????????????????? 客戶端(特指PC瀏覽器)與服務器,可以在【不必刷新整個瀏覽器】的情況下,與服務器進行異步通訊的技術?????????

?????????? ??? 即,AJAX是一個【局部刷新】的【異步】通訊技術

?????????? ??? AJAX不是全新的語言,是2005年Google公司推出的一種全新【編程模式】,不是新的編程語言

?

?? (4)不用刷新整個頁面便可與服務器通訊的辦法有:

?????? (A)Flash/ActionScript

?????? (B)框架Frameset

?????? (C)iFrame(內嵌入框架)

?????? (D)XMLHttpRequest(非IE瀏覽器)和ActiveXObject(IE瀏覽器)

?????????? ??? ?????背景:早上IE5時,微軟就開發出了第一個異步通訊對象,叫ActiveXObject對象,

?????????? ?? ??????Firefox等其它瀏覽器廠商也慢慢引入異步通訊對象,叫XMLHttpRequest對象,

?????????? ??? ?????IE的高版本,也將這個異步對象取名叫XMLHttpRequest對象,但IE有向下兼容問題,

???? ??? ?????也可以使用ActiveXObject對象。

????????????????????????????????? 無需第三方jar包,現代中高版本瀏覽器中內置了這個異步通訊對象,只需通過JavaScript就可以創建

???????????? ??? ????注意:所有瀏覽器中都內置了異步對象,在默認情況下,該異步對象并沒有創建出來

function createAJAX(){

??? var ajax = null;

??? try{

?????? ajax = new ActiveXObject("microsoft.xmlhttp");

??? }catch(e1){

?????? ajax = new XMLHttpRequest();

??? }

??? return ajax;

}

?

??????????

?? (5)AJAX工作原理

??????? 參見<<AJAX工作原理.JPG>>

?

?? (6)AJAX包含的技術

??????? 參見<<AJAX包含的技術.JPG>>

?

?? (7)AJAX開發步驟

?????????? ??? 步一:創建AJAX異步對象,例如:createAJAX()

??????? ??? 步二:準備發送異步請求,例如:ajax.open(method,url)

?????????? ??? 步三:如果是POST請求的話,一定要設置AJAX請求頭,例如:ajax.setRequestHeader()

?????????? ????? ????如果是GET請求的話,無需設置設置AJAX請求頭

?????????? ??? 步四:真正發送請求體中的數據到服務器,例如:ajax.send()

步五:AJAX不斷的監聽服務端響應的狀態變化,例如:ajax.onreadystatechange,后面寫一個無名處理函數?????????

?????????? ??? 步六:在無名處理函數中,獲取AJAX的數據后,按照DOM規則,用JS語言來操作Web頁面???????

?

?? (8)AJAX適合用在什么地方

?????????? ??? AJAX【適合】不用來傳遞大量數據,而只用來【傳遞少量數據】,在用戶的【體驗】上,【更加人性化】

?????????? ??? AJAX是一個和服務器無關的技術,即服務器可使用:JavaEE,.NET,PHP,。。。這些技術都可

?????????? ??? AJAX只管向服務器發送請求,同時只管接收服務器的HTML或XML或JSON載體響應

??????? 服務端不能使用轉發或重定向到web頁面,因為這樣會起瀏覽器全面刷新

?????????? ??? 即只能以流的方式響應給瀏覽器

?

?

八)AJAX應用

?? (1)無需刷新整個Web頁面顯示服務器響應的當前時間

?(text/html;charset=UTF-8)

??? 當前時間:<span></span><br/>

??? <input type="button" value="異步方式提交"/>

?

<script type="text/javascript">

?????? //定位button按鈕,同時添加單擊事件

?????? document.getElementsByTagName("input")[0].onclick = function(){

?????????? //NO1)創建AJAX異步對象(每個瀏覽器內置的,無需第三方jar包)

?????????? var ajax = createAJAX();//0

?????????? //NO2)AJAX異步對象準備發送請求

?????????? var url = "${pageContext.request.contextPath}/TimeServletAjax?id="+new Date().getTime();

?????????? var method = "GET";

?????????? ajax.open(method,url);//1

?????????? //NO3)AJAX異步對象真正發送請求體的數據到服務器,如果請求體無數據的話,用null表示

?????????? var content = null;

?????????? ajax.send(content);//2

??????????

?????????? //----------------------------------------等待

??????????

?????????? //NO4)AJAX異步對象不斷監聽服務端狀態的變化,只有狀態碼變化了,方可觸發函數

?????????? //0-1-2-3-4,這些是可以觸發函數的

?????????? //4-4-4-4-4,這些是不可以觸發函數的

?????????? //以下這個函數是服務器來觸發的,不是程序員觸發的,這和onclick是不一樣的

?????????? ajax.onreadystatechange = function(){

????????????? //如果AJAX狀態碼為4

????????????? if(ajax.readyState == 4){

????????????????? //如果服務器響應碼是200

????????????????? if(ajax.status == 200){

???????????????????? //NO5)從AJAX異步對象中獲取服務器響應的結果

???????????????????? var str = ajax.responseText;

???????????????????? //NO6)按照DOM規則,將結果動態添加到web頁面指向的標簽中

????????????????? ??? document.getElementsByTagName("span")[0].innerHTML = str;

????????????????? }

?????????? ??? }

?????????? }

?????? }

??? </script>

?

public class TimeServletAjax extends HttpServlet {

??? public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

?????? SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

?????? String str = sdf.format(new Date());

?????? //注意:在Web2.0時代,即異步方式下,不能用轉發或重定向

?????? //因為:轉發或重定向會引起瀏覽器全部刷新,而不是局部刷新

?????? //所以得用以輸出流的方式將服務器的結果輸出到瀏覽器

?????? response.setContentType("text/html;charset=UTF-8");

?????? PrintWriter pw = response.getWriter();

?????? pw.write(str);

?????? pw.flush();

?????? pw.close();

??? }

}

?

?? (2)基于HTML,以GET或POST方式,檢查注冊用戶名是否在數據庫中已存在(text/html;charset=UTF-8)

??? 輸入用戶名[POST]:<input type="text" maxlength="8"/>光標移出后,立刻顯示結果

??? <hr/>

??? <div></div>

????????

public class RegisterServletPost extends HttpServlet {

??? public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

?????? request.setCharacterEncoding("UTF-8");

?????? String username = request.getParameter("username");

?????? String tip = "images/MsgSent.gif";

?????? if("杰克".equals(username)){

?????????? tip = "images/MsgError.gif";

?????? }

?????? response.setContentType("text/html;charset=UTF-8");

?????? PrintWriter pw = response.getWriter();

?????? pw.write(tip);

?????? pw.flush();

?????? pw.close();

??? }

}

?

(3)基于XML,以POST方式,完成省份-城市二級下拉聯動

?(text/xml;charset=UTF-8)

??? <select id="province" style="width:111px">

?????? <option>選擇省份</option>

?????? <option>廣東</option>

?????? <option>湖南</option>

?????? <option>湖北</option>

??? </select>

???

??? <select id="city" style="width:111px">

?????? <option>選擇城市</option>

??? </select>

?

<script type="text/javascript">

?????? //定位省份下拉框,同時添時內容改變事件

?????? document.getElementById("province").onchange = function(){

?????????? //清除城市下拉框中的內容除第一項外

?????????? var citySelectElement = document.getElementById("city");

?????????? citySelectElement.options.length = 1;

?????????? //獲取選中的省份

?????????? var i = this.selectedIndex;

?????????? var optionElement = this[i];

?????????? var province = optionElement.innerHTML;

?????????? //如果不是"選擇省份"的話

?????????? if("選擇省份" != province){

????????????? //NO1)

????????????? var ajax = createAJAX();

????????????? //NO2)

????????????? var method = "POST";

????????????? var url = "${pageContext.request.contextPath}/ProvinceCityServlet?id="+new Date().getTime();

????????????? ajax.open(method,url);

?????????? ??? ajax.setRequestHeader("content-type","application/x-www-form-urlencoded");

????????????? //NO3)

????????????? var content = "province="+province;

????????????? ajax.send(content);

?????????????

????????????? //-------------------------------------------------

?????????????

????????????? //NO4)

????????????? ajax.onreadystatechange = function(){

????????????????? if(ajax.readyState == 4){

???????????????????? if(ajax.status == 200){

???????????????????????? //NO5)

???????????????????????? var xmlDocument = ajax.responseXML;

???????????????????????? //NO6)按照dom規則,解析xml文件中的所有內容

???????????????????????? var cityElementArray = xmlDocument.getElementsByTagName("city");

???????????????????????? var size = cityElementArray.length;????????????????? ??????

???????????????????????? for(var i=0;i<size;i++){

??????????????????????????? var cityElement = cityElementArray[i];

??????????????????????????? //innerHTML只能用于html和jsp頁面,不能用于xml頁面

????????????? ????????????? //在xml頁面我們通常用firstChild.nodeValue去替代innerHTML

??????????????????????????? var city = cityElement.firstChild.nodeValue;

??????????????????????????? //<option></option>

??????????????????????????? var optionElement = document.createElement("option");

??????????????????????????? //<option>廣州</option>

??????????????????????????? optionElement.innerHTML = city;

??????????????????????????? //<select id="city" style="width:111px"><option>廣州</option></select>

??????????????????????????? citySelectElement.appendChild(optionElement);

???????????????????????? }

???????????????????? }

????????????????? }

????????????? }

?????????? }

?????? }

??? </script>

?

public class ProvinceCityServlet extends HttpServlet {

??? public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

?????? this.doPost(request,response);

??? }

??? public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

?????? request.setCharacterEncoding("UTF-8");

?????? String province = request.getParameter("province");

??????

?????? response.setContentType("text/xml;charset=UTF-8");

?????? PrintWriter pw = response.getWriter();

?????? pw.write("<?xml version='1.0' encoding='UTF-8'?>");

?????? pw.write("<root>");

??????

?????? if("廣東".equals(province)){

?????????? pw.write("<city>廣州</city>");

?????????? pw.write("<city>深圳</city>");

?????????? pw.write("<city>中山</city>");

?????????? pw.write("<city>珠海</city>");

?????? }else if("湖南".equals(province)){

?????????? pw.write("<city>長沙</city>");

?????????? pw.write("<city>株洲</city>");

?????????? pw.write("<city>張家界</city>");

?????? }else if("湖北".equals(province)){

?????????? pw.write("<city>武漢</city>");

?????????? pw.write("<city>黃崗</city>");

?????? }

??????

?????? pw.write("</root>");

?????? pw.flush();

?????? pw.close();

??? }

}

?

?? (4)驗證碼檢查

?????? ?(text/html;charset=UTF-8)

??? <form>

?????? 驗證碼:

?????? <input type="text" maxlength="4" size="4"/>

?????? <img src="image.jsp"/>

?????? <input type="button" value="看不清" size="2"/>

?????? <span></span>

??? </form>

???????

<script type="text/javascript">

?????? //定位按鈕,同時添加單擊事件

?????? document.getElementsByTagName("input")[1].onclick = function(){

?????????? //定位img標簽,修改src屬性

?????????? document.images[0].src = "image.jsp?id="+new Date().getTime();

?????????? //清空span標簽中的內容

?????????? var spanElement = document.getElementsByTagName("span")[0];

?????????? spanElement.innerHTML = "";

?????????? //清空文本框中的內容

?????????? document.getElementsByTagName("input")[0].value = "";

?????? }

??? </script>

???

??? <script type="text/javascript">

?????? //定位文本框,同時添加鍵盤彈起事件

?????? document.getElementsByTagName("input")[0].onkeyup = function(){

?????????? //獲取輸入的驗證碼

?????????? var checkcode = this.value;

?????????? //去空格

?????????? checkcode = trim(checkcode);

?????????? //獲取驗證碼的長度

?????????? var size = checkcode.length;

?????????? //如果長度為4

?????????? if(size == 4){

????????????? //NO1)

????????????? var ajax = createAJAX();

????????????? //NO2)

????????????? var method = "POST";

????????????? var url = "${pageContext.request.contextPath}/CheckcodeServlet?id="+new Date().getTime();

????????????? ajax.open(method,url);

?????????? ??? ajax.setRequestHeader("content-type","application/x-www-form-urlencoded");

????????????? //NO3)

????????????? var content = "checkcode=" + checkcode;

????????????? ajax.send(content);

?????????????

????????????? //--------------------------------------------

?????????????

????????????? //NO4)

????????????? ajax.onreadystatechange = function(){

????????????????? if(ajax.readyState == 4){

???????????????????? if(ajax.status == 200){

???????????????????????? //NO5)

???????????????????????? var imagePath = ajax.responseText;

????????????????? ??????

???????????????????????? //NO6)

???????????????????????? var imgElement = document.createElement("img");

???????????????????????? imgElement.src = imagePath;

???????????????????????? imgElement.style.width = "14px";

???????????????????????? imgElement.style.height = "14px";

???????????????????????? var spanElement = document.getElementsByTagName("span")[0];

??? ???????????????????? spanElement.innerHTML = "";

???????????????????????? spanElement.appendChild(imgElement);

???????????????????? }

????????????????? }

????????????? }

?????????? }else{

????????????? //清空span標簽中的內容

????????????? var spanElement = document.getElementsByTagName("span")[0];

????????????? spanElement.innerHTML = "";

?????????? }

?????? }

??? </script>

???????

public class CheckcodeServlet extends HttpServlet {

?? public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

????? request.setCharacterEncoding("UTF-8");

????? //獲取客戶端輸入的驗證碼

????? String checkcodeClient = request.getParameter("checkcode");

????? //獲取服務端產生的驗證碼

????? HttpSession httpSession = request.getSession();

????? String checkcodeServer = (String) httpSession.getAttribute("CHECKNUM");

????? //二個驗證碼進行比較

????? String tip = "images/MsgError.gif";

????? if(checkcodeClient!=null && checkcodeServer!=null && checkcodeClient.equals(checkcodeServer)){

???????? tip = "images/MsgSent.gif";

????? }

????? //以流的方式輸出tip變量

?? ?? response.setContentType("text/html;charset=UTF-8");

????? PrintWriter pw = response.getWriter();

????? pw.write(tip);

????? pw.flush();

????? pw.close();

?? }

}

?

?

九)XMLHttpRequest(即:AJAX)對象常用事件,方法和屬性

?? (1)事件:

??????? ajax.onreadystatechange:表示AJAX異步對象不斷監聽服務端的響應,

??????? 是由服務器程序觸發,不是程序員觸發

?

?? (2)屬性:

?????????? ??? ajax.readyState==0:表示AJAX異步對象已創建好,但還沒有調用open()方法

?

?????????? ??? ajax.readyState==1:表示AJAX異步對象已調用open()方法,但還沒有調用send()方法

?

?????????? ??? ajax.readyState==2:表示AJAX異步對象已調用send()方法,但請求還沒有到達服務器端

?

?????????? ??? ajax.readyState==3:表示服務端已接收到AJAX異步對象的請求,正在處理響應中。。。

?

ajax.readyState==【4】:表示AJAX異步對象已經完完全全接收到了服務器的響應信???????????? 息,但接收到的數據不一定都正確

上述5種狀態不是所有瀏覽器都相同,但狀態4每種瀏覽器都相同

?

??????? ajax.status==200:表示AJAX異步對象接收到響應碼,如果是200的話,表示一切正常

??????????

??????? ajax.responseText:表示從AJAX異步對象中獲取HTML載體中的數據

?

?????????? ??? ajax.responseXML:表示從AJAX異步對象中獲取XML載體中的數據

?

?? (3)方法:

?????????? ??? ajax.open(method,url,可選的boolean值)

?????????? ??? AJAX異步對象準備發送異步請求

?????????? ??? 參數一:以什么方式發送,常用的用GET或POST,大小寫不敏感

?????????? ??? 參數二:發送到什么地方去,常用Servlet或Struts2或SpringMVC來接收,

這里只限于JavaEE學科?

?????????? ??? 參數三:默認值為true,表示AJAX對象以【異步】的方式提交到服務端

?????????? ??????? ????如果設置為false,表示AJAX對象以【同步】的方式提交到服務端

?

??????? ajax.setRequestHeader("content-type","application/x-www-form-urlencoded")

?????????? ??? 表示將請求體中的內容,按照UTF-8的方式進行編碼,只針對POST請求有效?

?

?????????? ??? ajax.send(content)

?????????? ??? AJAX異步對象真正發送異步請求

?????????? ??? 參數一:表示HTTP【請求體】中的內容

???????????????????? 如果是GET方式:content = null,如果強行傳值到服務器,服務端收不到,返回NULL

???????????????????? 如果是POST方式:content != null,例如:username=jack&password=123&role=admin

?

?

十)數據載體

?? (1)HTML

(A)優點:服務端響應的是普通html字符串,無需JS解析,配合innerHTML屬性效率高

?????? (B) 缺點:如果需要更新WEB頁面中的很多處地方,HTML不太方便,同時innerHTML屬性不是DOM的標準,不能操作XML

????????????????? 注意:innerHTML在xml中不能使用,用firstChild.nodeValue替代

?????? (C)適合:小量數據載體,且只更新在web頁面中的一個地方

?

?? (2)XML

?? (A)優點:是種通用的普通字符串格式,任何技術都能解析,標簽名可以任意,使用DOM標準規則能夠解析XML的任何部分

?????? (B)缺點:XML文件格式相當嚴格,出錯后,responseXML屬性返回NULL,如果XML文件過長,導致解析效率低下

?????? (C)適合:大量具有層次數據載體????

?

?? (3)JSON (下次課講)+ struts2框架

??????? 兼備HTML和XML的特點

?

?

?

?

練習:服務端采用Servlet完成

?

1)檢查注冊用戶名是否在數據庫中存在

2)省份-城市二級聯動

3)驗證碼識別

轉載于:https://www.cnblogs.com/GJ-ios/p/6053044.html

總結

以上是生活随笔為你收集整理的34、JS/AJAX的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。