成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > Ajax 異步加載解析

Ajax 異步加載解析

熱門標簽:騰訊地圖標注位置能用多久 機器人電銷騙局揭秘 ai機器人電銷資源 云呼外撥網(wǎng)絡(luò)電話系統(tǒng) 硅語電話機器人公司 越南河內(nèi)地圖標注 地圖標注項目怎么樣 超級大富翁地圖標注 個人怎樣在百度地圖標注地名

AJAX (Asynchronous JavaScript and XML,異步的 JavaScript 和 XML)。它不是新的編程語言,而是一種使用現(xiàn)有標準的新方法,是在不重新加載整個頁面的情況下與服務(wù)器交換數(shù)據(jù)并更新部分網(wǎng)頁的藝術(shù)。
那么,讓我們一起走進AJax的世界吧。

基礎(chǔ)語法

學(xué)習(xí)Ajax之前,我們要明確自己的需求,那就是在不刷新頁面的前提下實現(xiàn)異步的與服務(wù)器進行交互,更新頁面信息。使用Ajax其實也是很簡單的,我們只需要遵循一定的步驟即可。
 •創(chuàng)建Ajax對象(原生的需要判斷當前瀏覽器的類型)
 •設(shè)置回調(diào)函數(shù) (完成與服務(wù)器的交互之后所觸發(fā)的函數(shù))
 •打開請求,并發(fā)送。(根據(jù)請求方式的不同,代碼書寫稍有不同)
 •客戶端獲得反饋數(shù)據(jù),更新頁面 

獲取Ajax對象

不同的瀏覽器對Ajax的支持是不一致的,所以我們要區(qū)別的對待。

設(shè)置回調(diào)函數(shù)

設(shè)置回調(diào)函數(shù)的目的就是在Ajax完成與服務(wù)器的交互之后,將獲取到的數(shù)據(jù)信息,添加到頁面上。

通常我們會指定onreadystatechange函數(shù)作為我們的回調(diào)處理函數(shù)。

相關(guān)于Ajax與服務(wù)器交互有如下狀態(tài)信息供我們在編碼的過程找中參考。

.readystate

關(guān)于加載狀態(tài)有如下幾個常用的數(shù)值:
 •0: 請求未初始化
 •1: 服務(wù)器連接已建立
 •2: 請求已接收
 •3: 請求處理中
 •4: 請求已完成,且響應(yīng)已就緒 

.status

加載結(jié)果的狀態(tài)信息有:
 •200: “OK”

 •404: “未找到此頁面”

 開啟交互

一談起交互,映入腦海的就是雙方。也就是我們的ajax客戶端和服務(wù)器之間的交互。所以我們需要明確請求數(shù)據(jù)在服務(wù)器上的位置

open(method,url,async) 

url的使用會根據(jù)method的不同而不同,這一點我們務(wù)必要清楚。至于asynchronous這個參數(shù),一般來說對于數(shù)據(jù)量很小的請求可以采用false,但是建議使用true來進行異步的加載,來避免服務(wù)器壓力過大。

 •GET方式 

只是用這種方式很簡單,指定url在服務(wù)器上的位置即可。這里紅色部分的理解相當?shù)闹匾N覀儎?wù)必指定url為請求在服務(wù)器上的位置,一般采用絕對路徑的方式。

// 對Servlet來說指定其注解上的位置即可
xmlhttp.open("GET","/Test/servlet/AjaxServlet?userinput="+str.value,true);
  xmlhttp.send();

 •POST方式 

使用POST方式的時候,我們需要額外的多一項處理。如下例:

xmlhttp.open("POST","ajax_test.asp",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
// 在send方法中指定要傳輸?shù)膮?shù)信息即可
xmlhttp.send("fname=Billlname=Gates");

客戶端更新頁面

對于Ajax來說,顧名思義。是采用xml形式來傳輸數(shù)據(jù)的。但是目前而言,這不再是唯一的一種形式了。那么我們怎么將獲取到的數(shù)據(jù)更新到網(wǎng)頁上呢?有如下兩種方式。
 •如果來自服務(wù)器的響應(yīng)并非 XML,請使用 responseText 屬性。
 document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

 •如果來自服務(wù)器的響應(yīng)是 XML,而且需要作為 XML 對象進行解析,請使用 responseXML 屬性: 

xmlDoc=xmlhttp.responseXML;
txt="";
x=xmlDoc.getElementsByTagName("ARTIST");
for (i=0;ix.length;i++)
 {
 txt=txt + x[i].childNodes[0].nodeValue + "br />";
 }
document.getElementById("myDiv").innerHTML=txt;

實例體驗

了解了這些基礎(chǔ)語法之后,我們就可以在實際的開發(fā)中簡單的應(yīng)用了。為了更好的完成此次實驗,我先做了一個簡單的JavaWeb,來處理我們的Ajax請求。

使用Servlet方式

AjaxServlet.java

package one;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class AjaxServlet
 */
@WebServlet("/AjaxServlet")
public class AjaxServlet extends HttpServlet {
 private static final long serialVersionUID = 1L;

 /**
  * @see HttpServlet#HttpServlet()
  */
 public AjaxServlet() {
  super();
  // TODO Auto-generated constructor stub
 }

 /**
  * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
  *  response)
  */
 protected void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  // TODO Auto-generated method stub
  //response.getWriter().append("Served at: ").append(request.getContextPath());
  String userinput = request.getParameter("userinput");
  System.out.println("客戶端連接!");
  System.out.println("請求信息為:" + userinput);
  PrintWriter out = response.getWriter();
  if(userinput.equals("") || userinput.length()6) {
   response.setContentType("text/html;charset=UTF-8");
   response.setCharacterEncoding("UTF-8");
   response.setHeader("Content-Type", "text/html;charset=utf-8");
   out.write("h3>the length of input string must be more than 6!/h3>");
  }else{
   response.setContentType("text/html;charset=UTF-8");
   response.setCharacterEncoding("UTF-8");
   response.setHeader("Content-Type", "text/html;charset=utf-8");
   out.println("h3>Correct!/h3>");
  }
  out.close();
 }

 /**
  * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
  *  response)
  */
 protected void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  // TODO Auto-generated method stub
  doGet(request, response);
 }

}

 web.xml

?xml version="1.0" encoding="UTF-8"?>
web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
 display-name>Test/display-name>
 welcome-file-list>
 welcome-file>index.html/welcome-file>
 welcome-file>index.htm/welcome-file>
 welcome-file>index.jsp/welcome-file>
 welcome-file>default.html/welcome-file>
 welcome-file>default.htm/welcome-file>
 welcome-file>default.jsp/welcome-file>
 /welcome-file-list>

 servlet>
 servlet-name>AjaxServlet/servlet-name>
 servlet-class>one.AjaxServlet/servlet-class>
 /servlet>
 servlet-mapping>
 servlet-name>AjaxServlet/servlet-name>
 url-pattern>/servlet/AjaxServlet/url-pattern>
 /servlet-mapping>
/web-app>

ajax.html

!DOCTYPE html>
html>
head>
meta charset="UTF-8">
title>Ajax測試/title>
/head>
body>
div>
 h2>AJAX Test/h2>
 input type="text" name="userinput" placeholder="用戶輸入,Ajax方式獲得數(shù)據(jù)" onblur="getResult(this)">
 br>
 span id="ajax_result">/span>
 script>
 getResult = function(str){
  var httpxml;
  if(0 == str.value.length) {
   document.getElementById("ajax_result").innerHTML = "Nothing"; 
  } 
  if (window.XMLHttpRequest) {
   xmlhttp = new XMLHttpRequest();
  }else{
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.onreadystatechange = function(){
   if(4 == xmlhttp.readyState  200 == xmlhttp.status) {
    document.getElementById("ajax_result").innerHTML = xmlhttp.responseText;
   }
  }

  xmlhttp.open("GET","/Test/servlet/AjaxServlet?userinput="+str.value,true);
  xmlhttp.send();

  }
 /script>
/div>
/body>
/html>

實驗結(jié)果
 •長度小于6時:

 •長度大于等于6:

使用JSP方式

receiveParams.jsp

%@ page contentType="text/html;charset=UTF-8" language="java" %> 
% 
  //接收參數(shù) 
  String userinput = request.getParameter("userinput"); 
  //控制臺輸出表單數(shù)據(jù)看看 
  System.out.println("userinput =" + userinput); 
  //檢查code的合法性 
  if (userinput == null || userinput.trim().length() == 0) { 
    out.println("code can't be null or empty"); 
  } else if (userinput != null  userinput.equals("admin")) { 
    out.println("code can't be admin"); 
  } else { 
    out.println("OK");
  } 
%>

ajax.html

!DOCTYPE html>
html>
head>
meta charset="UTF-8">
title>Ajax測試/title>
/head>
body>
div>
 h2>AJAX Test/h2>
 input type="text" name="userinput" placeholder="用戶輸入,Ajax方式獲得數(shù)據(jù)" onblur="getResult(this)">
 br>
 span id="ajax_result">/span>
 script>
 getResult = function(str){
  var httpxml;
  if(0 == str.value.length) {
   document.getElementById("ajax_result").innerHTML = "Nothing"; 
  } 
  if (window.XMLHttpRequest) {
   xmlhttp = new XMLHttpRequest();
  }else{
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.onreadystatechange = function(){
   if(4 == xmlhttp.readyState  200 == xmlhttp.status) {
    document.getElementById("ajax_result").innerHTML = xmlhttp.responseText;
   }
  }

  //xmlhttp.open("GET","/Test/servlet/AjaxServlet?userinput="+str.value,true);
  xmlhttp.open("GET","receiveParams.jsp?userinput="+str.value,true);
  xmlhttp.send();

  }
 /script>
/div>
/body>
/html>

效果一致。

JQuery 中的Ajax

前面介紹的是原生的Ajax實現(xiàn)方式,我們需要做的工作還是很多的,而JQuery幫助我們完成了平臺無關(guān)性的工作,我們只需要專注于業(yè)務(wù)邏輯的開發(fā)即可。直接用jquery的.post或者.get或者.ajax方法,更方便更簡單,js代碼如下:
 •.POST方式

 $.post("./newProject",{newProjectName:project_name},
   function(data,status){
  //alert("data:" + data + "status:" + status);
  if(status == "success"){
   var nodes = data.getElementsByTagName("project");
   //alert(nodes[0].getAttribute("name"));
   for(var i = 0;i  nodes.length;i ++){
    $("#project_items").append("option value=\"" + (i+1) + "\">" + nodes[i].getAttribute("name") + "/option>"); 
   }
  }

 })

 •.ajax方式

 $(function(){
  //按鈕單擊時執(zhí)行
  $("#testAjax").click(function(){

    //Ajax調(diào)用處理
   $.ajax({
    type: "POST",
    url: "test.php",
    data: "name=garfieldage=18",
    success: function(data){
      $("#myDiv").html('h2>'+data+'/h2>');
     }
   });

   });
 });

 •.get方式

 $(document).ready(function(){
 $("#bt").click(function(){
 $.get("mytest/demo/antzone.txt",function(data,status){
  alert("Data:"+data+"\nStatus:"+status);
 })
 })
})

總結(jié)

今天的演示對于實際開發(fā)的過程中,服務(wù)器端的用戶輸入數(shù)據(jù)驗證,或者即時更新頁面而又減少網(wǎng)絡(luò)流量是非常的有必要的。而且用處也很廣泛,還能有效的提升用戶體驗。

這次的案例,就當是拋磚引玉,給你的應(yīng)用也添加上異步加載吧。

您可能感興趣的文章:
  • jQuery Ajax 加載數(shù)據(jù)時異步顯示加載動畫
  • jQuery Ajax 異步加載顯示等待效果代碼分享
  • ajax異步加載圖片實例分析
  • MVC Ajax Helper或Jquery異步加載部分視圖
  • 用ajax動態(tài)加載需要的js文件
  • jQuery+AJAX實現(xiàn)無刷新下拉加載更多
  • jQuery 瀑布流 浮動布局(一)(延遲AJAX加載圖片)
  • php+ajax+jquery實現(xiàn)點擊加載更多內(nèi)容
  • Jquery仿淘寶京東多條件篩選可自行結(jié)合ajax加載示例
  • php+ajax實現(xiàn)無刷新動態(tài)加載數(shù)據(jù)技術(shù)

標簽:鄭州 遼源 內(nèi)蒙古 林芝 洛陽 舟山 邢臺 海南

巨人網(wǎng)絡(luò)通訊聲明:本文標題《Ajax 異步加載解析》,本文關(guān)鍵詞  Ajax,異步,加載,解析,Ajax,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Ajax 異步加載解析》相關(guān)的同類信息!
  • 本頁收集關(guān)于Ajax 異步加載解析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    91麻豆精品成人一区二区| 国产精品777| 欧美日韩在线视频一区二区三区| 无吗不卡中文字幕| 亚洲人精品午夜| 日韩成人在线观看视频| 欧美日韩精品亚洲精品| 午夜刺激在线| 精品伦理精品一区| 精品国产一区二区三区四区| 在线永久免费观看黄网站| 国产精品理人伦一区二区三区| 中文字幕 国产| 亚洲精品一区二区口爆| 亚洲国产精品久久| 波多野结衣一区二区在线| 粉嫩精品导航导航| 欧洲精品视频在线观看| 日本午夜激情视频| 日本熟妇一区二区三区| av一区二区三区四区电影| 蜜桃精品久久久久久久免费影院| 精品国产一区二区三区不卡| 国产真实乱全部视频| 亚洲久久视频| 日韩免费一区二区三区| 亚洲精品国产精品国自产网站| 国产精品老女人视频| 内射一区二区三区| 久99久视频| 成人在线中文字幕| 国产区美女在线| 日本少妇一区| 欧美在线色视频| 黄色成人在线网站| 岳乳丰满一区二区三区| 一级黄色录像免费看| 91九色国产视频| 亚洲经典视频在线观看| 亚洲精品在线91| xxxxhd欧美精品| 三级网站在线| 亚洲国产精品毛片av不卡在线| www浪潮av99com| 久久男人资源视频| 性感女国产在线| 日本1区2区3区视频| 夜夜嗨av一区二区三区网站四季av| 久久国产综合| 香蕉久久夜色精品国产更新时间| 日本成人看片网址| 91久久精品国产91久久性色| 最新中文字幕亚洲| 亚洲欧美日韩综合国产aⅴ| 久久综合久中文字幕青草| 亚洲欧美日韩国产成人| 国产中文字幕av| 亚洲一二av| 91免费综合在线| 成人激情视频免费在线| 中文字幕中文字幕99| 亚洲精品中文在线| 91精品国产aⅴ一区二区| 性欧美xxxx大乳国产app| 成人久久在线| 看av免费毛片手机播放| 国产精品臀控福利在线观看| 天堂av在线电影| 中文字幕久久久久久久| 精品三级在线观看| av网站免费| 91视视频在线直接观看在线看网页在线看| 日韩欧美在线观看免费| 国产成人自拍视频在线| 成人资源在线| 天天av天天翘天天综合网色鬼国产| 国产乱子轮xxx农村| 国产精品加勒比| 国产中文伊人| 久久影视一区二区| 久久爱另类一区二区小说| 99视频精品免费| 中文字幕制服丝袜成人av| 少妇高潮爽到全身痉挛抽搐| 精品人妻一区二区三区日产| 亚洲av无一区二区三区| 久久国产精品一区二区三区四区| av免费一区二区| 一区二区三区高清| 电影天堂爱爱爱爱| 亚洲人妻一区二区三区| 中文字幕一区二区免费| 亚洲成人黄色av| 日韩三级影视| 99久久99久久久精品棕色圆| 精品久久久久久久久久久久包黑料| 欧美a∨亚洲欧美亚洲| 激情偷乱视频一区二区三区| 福利成人导航| 国产超碰在线一区| 麻豆av电影在线观看| 欧美日韩精品是欧美日韩精品| 日韩成人短视频| 国产精品第2页| 天堂网中文在线| 亚洲av无码一区二区三区网址| 椎名由奈jux491在线播放| 日韩av免费在线| caopor在线| 任你躁av一区二区三区| 亚洲一区二区三区四区五区| av日韩在线播放| 一区二区三区免费在线视频| 中中文字幕av在线| 成人免费看黄yyy456| 视频二区在线播放| 中文字幕乱码在线播放| 亚洲国产成人精品一区二区| 国产福利免费观看| 亚洲网在线观看| 欧美无毛视频| 精品久久久久久亚洲综合网站| 日本在线视频中文有码| 欧洲一区在线| 日韩欧美激情一区| 日韩a视频在线观看| 亚洲人成网站在线在线观看| 亚欧美无遮挡hd高清在线视频| 精品人妻一区二区三区蜜桃| 久久裸体网站| 中文字幕亚洲影院| 精品中文字幕一区二区三区av| 国产一区二区视频在线| 欧美成人亚洲成人日韩成人| 乱一区二区av| 日日夜夜精品网站| 精品欧美一区二区久久| 国产精品无码av无码| 中文字幕91视频| 婷婷综合久久中文字幕蜜桃三电影| 456亚洲影院| 国产精品丝袜久久久久久app| 精品电影在线| 19j韩国主播韩宝贝在线| 黄动漫在线免费观看| 精品国产成人av在线免| 亚洲色图欧美| 韩国在线视频一区| 成人av中文字幕| 136导航精品福利| 亚洲图片视频小说| 99re视频在线观看| 亚洲美女淫视频| 青青草成人在线观看| av观看在线免费| 一夜七次郎国产精品亚洲| 久久色在线观看| 亚州福利视频| 激情久久一区二区| 国产精品自在自线| 天堂资源在线亚洲视频| 91精品综合久久久久久久久久久| 免费麻豆国产一区二区三区四区| 国产suv精品一区二区33| 日本1区2区3区中文字幕| 精品久久久久久久无码| www.日韩精品| 欧美一区二区大胆人体摄影专业网站| 一区二区激情| 黄色片在线免费| 国产精品18久久久久久久网站| 五月天婷婷在线视频| 午夜精品剧场| 无码日韩人妻精品久久蜜桃| 欧美激情一区二区| 美女被到爽高潮视频| 精品大片一区二区| 国产精品电影网| 精品一区二区三区免费站| 一区二区三区在线观看网站| 精品亚洲一区二区三区在线播放| 在线观看免费中文字幕| 美女隐私在线观看| 久久亚洲综合| 欧美男女交配视频| 亚洲午夜一区二区| 国产欧美日韩中文字幕在线| 一级做a爱视频| 台湾无码一区二区| 日本韩国欧美| 久久成人在线视频| 亚洲69av| 一区二区不卡视频在线观看| 免费人成年激情视频在线观看| 美女脱光内衣内裤视频久久网站| 亚洲国产高清国产精品| 成人免费a视频| 在线观看av影片| 欧美永久精品| 久久久久无码国产精品一区李宗瑞| 精品网站在线看| 久久久无码一区二区三区| 欧美夫妻性生活xx| 久久激情中文| 色悠悠国产精品| 国产wwwxx| 久久99高清| 麻豆传媒网站在线观看| 精品网站在线| 色视频www在线播放国产人成| 精品国产三级电影在线观看| 911美女片黄在线观看游戏| 成人激情黄色网| 成人一级片在线观看| 国产精品区在线| 欧美精品福利在线| 亚洲一区二区网站| 欧美日韩国产一二三区| 影音先锋2020资源| 成人精品动漫一区二区三区| 国产黄页在线观看| 黄色的电影在线-骚虎影院-骚虎视频| 日韩中文字幕一区二区| 蜜臀久久精品久久久用户群体| 免费一级在线观看| 国产视频一二| 亚洲女同在线| 国内精品久久久久影院色| 国产精品久久久久久久久粉嫩av| 一二区成人影院电影网| 91精品国产91久久久久久青草| 男女啪啪免费体验区| 狠狠综合久久久综合| 免费观看欧美成人禁片| 亚洲乱码国产乱码精品精可以看| 不卡一二三区首页| 国产精品无码专区av免费播放| 亚洲无码久久久久久久| 一本色道久久综合亚洲| 日本在线视频一区二区三区| 精品国产av 无码一区二区三区| 少妇饥渴放荡91麻豆| 一级特黄特色的免费大片| 888久久久| 99t1这里只有精品| 九九视频免费观看| 免费毛片一区二区三区久久久| 国产精品自拍首页| 91精品黄色片免费大全| 国产免费高清| yw.139尤物在线精品视频| 91精品国产综合久久久久久丝袜| 在线播放日韩av| 蜜臀精品久久久久久蜜臀| 免费的av电影| 亚洲精品乱码久久久久久蜜桃麻豆| 久久伊伊香蕉| 欧美尤物一区| av日韩精品| 日韩欧美中文字幕一区| av爱爱亚洲一区| 国内精品久久久久久影院老狼| 伊人久久婷婷色综合98网| 中文字幕欧美色图| 精品久久久久久久久久久久久久久| 在线视频欧美一区| 欧美日韩三级| 日本黄色一区| 国产毛片视频| 欧美日韩国产观看视频| 午夜精品久久久久久久久| 亚洲黄色免费看| 中文字幕欧美一区二区| 日韩簧片在线观看| 精品99久久| 国内三级在线观看| 波多野结衣在线观看视频| 久久免费视频2| 久激情内射婷内射蜜桃| 免费搞黄视频| 久久综合九色综合久久久精品综合| 制服丝袜综合日韩欧美| www.国产毛片| 亚欧洲精品在线视频免费观看| wwwjizzjizzcom| 欧美大片网站在线观看| 国产一区二三区| 久久久久久久99| 婷婷亚洲最大| 97香蕉超级碰碰久久免费软件| eeuss影院www影院入口| 国产精品久久久久久久久久白浆| 国产激情无码一区二区三区| 久久综合亚洲社区| 色综合久久九月婷婷色综合| 日韩精品诱惑一区?区三区| 欧美久久久久久| 久久97精品久久久久久久不卡| 亚洲熟妇无码av| 久久精品亚洲一区二区三区浴池| 91国产精品成人| 精品72久久久久中文字幕| 日韩视频免费观看高清完整版| 动漫成人在线观看| 日韩精品网站| 精品伊人久久久久7777人| 国产精品亚洲第五区在线| 国产在线自天天| 欧美日韩在线观看免费| 日本一本草久在线中文| 性折磨bdsm欧美激情另类| 国产综合欧美在线看| 欧美人善交videosg| 欧美激情性爽国产精品17p| 久久人人爽人人人人片| 精品伊人久久久久7777人| 高清一区二区视频| 浮生影视网在线观看免费| 蜜桃精品视频在线观看| 欧美一级一级性生活免费录像| 激情小说亚洲一区| 轻轻操 在线观看| 欧美亚洲日本在线| 香港一级纯黄大片| 欧美日韩国产精选| 国产一级淫片免费| 日韩大片一区二区| 亚洲精品色午夜无码专区日韩|