日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
AJAX調用方式總結

最近用了近兩天的時間對AJAX的知識進行了一個梳理,覺得是時候對AJAX的相關知識點做個總結了.....這當然也就是本篇博客的主旨了....我也不是很贊成用長篇大論來講述什么是AJAX,怎么使用AJAX,這樣我總覺得太理論化了,接受起來會有一定的難度...所以,本篇博客的另一個主旨是:從實例入手,由淺到深.....好了,直接開始入手吧

專注于為中小企業(yè)提供成都網(wǎng)站制作、成都網(wǎng)站設計服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)信州免費做網(wǎng)站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了超過千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉變。

實例一:省份-城市的聯(lián)級下拉框 

利用AJAX來獲取數(shù)據(jù)實現(xiàn)聯(lián)級下拉框,當省份下拉框的選項發(fā)生變化時,城市的選項對應變化,效果如圖:

我們首先來實現(xiàn)后臺,先將數(shù)據(jù)準備好了在實現(xiàn)前臺獲取數(shù)據(jù),【考慮:當我們頁面登錄的時候,我們需要獲取的數(shù)據(jù)】: 1).省份框中的省份; 2).因為登錄時省份框的第一項選中,所以還需要第一個省份所對應的城市名,好了,需求知道了,代碼就好寫了,直接貼上后臺代碼:

 
 
 
 
  1. protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.             if (Request.QueryString["provid"] != null)
  4.             {
  5.                 //首先獲取傳遞過來的參數(shù)值
  6.                 string provId = Request.QueryString["provid"].ToString();
  7.                 //查詢所有城市
  8.                 string sqlprov = "select * from Provice";
  9.                 SqlDataReader reader = DbHelperSQL.ExecuteReader(sqlprov);
  10.                 string resultProv = "";
  11.                 while (reader.Read())
  12.                 {
  13.                     string id = reader[0].ToString();
  14.                     string provName = reader[1].ToString();
  15.                     //字符串拼接,為了前臺獲取時可以切分獲取對應數(shù)據(jù),用 '|' 來隔離 各個省份
  16.                     resultProv += "|" + string.Format("{0},{1}", id, provName);
  17.                 }
  18.                 reader.Close();
  19.                 //根據(jù)省份框的ID來獲取對應的城市名
  20.                 string sqlcity =string.Format("select * from City where Proid='{0}'",provId);
  21.                 SqlDataReader readercity = DbHelperSQL.ExecuteReader(sqlcity);
  22.                 string resultCity = "";
  23.                 while (readercity.Read())
  24.                 {
  25.                     string cityId = readercity[1].ToString();
  26.                     string cityName = readercity[2].ToString();
  27.                     //同樣用字符串拼接 用 '|' 來隔離 同一省份 的各個城市
  28.                     resultCity += "|" + string.Format("{0},{1}", cityId, cityName);
  29.                 }
  30.                 //去除第一個 '|' ,并且在最后拼接上 '&' 來區(qū)分省份和城市
  31.                 resultProv = resultProv.Substring(1) + "&";
  32.                 //最后的結果形式為【id,省份名|id2,省份名2|....&id,城市名|id2,城市名2|.....】
  33.                 string result = resultProv + resultCity.Substring(1);
  34.                 Response.Write(result);
  35.                 Response.End();
  36.             }
  37.         }

后臺代碼其實很簡單,就是根據(jù)傳過來的參數(shù)從數(shù)據(jù)庫獲取對應的數(shù)據(jù),但是這里我們把獲取到得數(shù)據(jù)最后都用字符串拼接起來了,而且是有規(guī)律的拼接,這是為什么呢?其實在注釋上已經(jīng)講明了,就是為了方便前臺獲取對應的數(shù)據(jù)了,因為我們是使用后臺返回文本形式的數(shù)據(jù),這就是為什么我們拼接字符串了。。

接下來我們來實現(xiàn)前臺,前臺主要的任務就是獲取后臺返回的數(shù)據(jù),并實現(xiàn)綁定......也是分塊貼上代碼

 
 
 
 
  1. //實例化XmlHttpRequest對象
  2.  var xhr = null;
  3.         function CreateXhr() {
  4.             if (window.ActiveXObject) 
  5.             {
  6.                 try
  7.                 {
  8.                     xhr = new ActiveXObject("Microsoft.XMLHTTP");
  9.                 }
  10.                 catch (e) 
  11.                 {
  12.                     try
  13.                     {
  14.                         xhr = new ActiveXObject("Msxml2.XMLHTTP");
  15.                     }
  16.                     catch (e) 
  17.                     {
  18.                         xhr = null;
  19.                     }
  20.                 }
  21.             }
  22.             if (window.XMLHttpRequest) {
  23.                 xhr = new XMLHttpRequest();
  24.             }
  25.             return xhr;
  26.         }

當頁面載入時,實現(xiàn)省份框以及第一個省份對應的城市框的綁定,代碼:

 
 
 
 
  1. //載入綁定省份 
  2.        function getLoadProv() {
  3.            CreateXhr();
  4.            xhr.onreadystatechange = WatchState;
  5.            xhr.open("get", "getProvCity.aspx?provid=1&time=" + new Date());
  6.            xhr.send(null);
  7.        }
  8.        //監(jiān)聽載入綁定時狀態(tài)
  9.        function WatchState() {
  10.            if (xhr.readyState == 4 && xhr.status == 200) {
  11.                //1,**|2,**&1,##|2,##
  12.                var result = xhr.responseText;
  13.                var provs = result.split('&')[0].split('|');
  14.                var citys = result.split('&')[1].split('|');
  15.                //省份下拉框清空
  16.                document.forms[0].prov.length = 0;
  17.                //綁定省份框
  18.                for (var i = 0; i < provs.length; i++) {
  19.                    var prov = provs[i].split(',');
  20.                    //實例化一個選項
  21.                    var op = new Option();
  22.                    op.value = prov[0];
  23.                    op.text = prov[1];
  24.                    document.forms[0].prov.options.add(op);
  25.                }
  26.                //城市下拉框清空
  27.                document.forms[0].city.length = 0;
  28.                //綁定城市框
  29.                for (var j = 0; j < citys.length; j++) {
  30.                    var city = citys[j].split(',');
  31.                    var op = new Option();
  32.                    op.value = city[0];
  33.                    op.text = city[1];
  34.                    document.forms[0].city.options.add(op);
  35.                }                
  36.            }
  37.        }

當省份框的選項發(fā)生變化時實現(xiàn)聯(lián)級變化,代碼:

 
 
 
 
  1. //獲取城市
  2. function GetCity() {
  3.    
  4.     //獲取省份框選中的值
  5.     var provId = document.forms[0].prov.value;
  6.     CreateXhr();
  7.     xhr.onreadystatechange = UpdateCity;
  8.     xhr.open("get", "getProvCity.aspx?provid=" + provId + "&time=" + new Date());
  9.     xhr.send(null);
  10. }
  11. //修改城市下拉框內容
  12. function UpdateCity() {
  13.     if (xhr.readyState == 4 && xhr.status == 200) {
  14.         var result = xhr.responseText;
  15.         var citys = result.split('&')[1].split('|');
  16.         //城市下拉框清空
  17.         document.forms[0].city.length = 0;
  18.         //綁定城市框
  19.         for (var j = 0; j < citys.length; j++) {
  20.             var city = citys[j].split(',');
  21.             var op = new Option();
  22.             op.value = city[0];
  23.             op.text = city[1];
  24.             document.forms[0].city.options.add(op);
  25.         }                
  26.     }

前臺html代碼:

 
 
 
 
  1. html
  2.  
  3.      
  4.      
  5.          
  6.          
  7.          
  8.          
  9.      
  •      
  •  
  • #p#

    實例二:利用$.get,$.post方法獲取當前時間

    $.get():

    定義:get()方法通過遠程HTTP GET請求載入信息

    語法:$(selector).get(url,data,success(response,status,xhr),dataType)

    參數(shù)

    url:必須,請求發(fā)送的地址。

    data:可選,發(fā)送到服務器的數(shù)據(jù)。

    success:可選,請求成功時運行的函數(shù)

    1).response:包含結果的數(shù)據(jù)

    2).status:包含請求的狀態(tài)

    3).xhr:包含XmlHttpRequest對象

    dataType:服務器響應的數(shù)據(jù)類型,默認將智能判斷

    $.post()

    定義:post()方法通過遠程HTTP Post請求載入信息

    語法:$(selector).post(url,data,success(data,status,jqXHR),dataType)

    參數(shù)

    url:必須,請求發(fā)送的地址。

    data:可選,發(fā)送到服務器的數(shù)據(jù)。

    success:可選,請求成功時運行的函數(shù)

    1).data:包含結果的數(shù)據(jù)

    2).status:包含請求的狀態(tài)

    3).jqXHR:包含XmlHttpRequest對象

    dataType:服務器響應的數(shù)據(jù)類型,默認將智能判斷

    由于實例相當簡單,直接上所有代碼:

     
     
     
     
    1. protected void Page_Load(object sender, EventArgs e)
    2.        {
    3.            string time = "";
    4.            //Get
    5.            if (Request.QueryString["time"]!=null)
    6.            {
    7.                time = "Get:"+ Request.QueryString["time"].ToString();
    8.            }
    9.            //Post
    10.            if (Request.Form["time"] != null)
    11.            {
    12.                time = "Post:" + Request.Form["time"].ToString();
    13.            }
    14.            Response.Write(time + "  現(xiàn)在:" + DateTime.Now.ToString());
    15.            Response.End();
    16.        }

    前臺獲取時間

     
     
     
     
    1.  
     
     
     
     
    1.     
    2.         
    3.           
    4.           
    5.           
    6.           
    7.         
  •     
  • #p#

    實例三:使用$.ajax實現(xiàn)獲取后臺數(shù)據(jù),后臺返回數(shù)據(jù)格式為text,json,xml三種類型

    $.ajax()

    定義:ajax()方法通過遠程HTTP請求載入信息

    語法:Jquery.ajax([settings])

    常用參數(shù)[settings]--用于配置Ajax的鍵值對請求

    url:必須,請求發(fā)送的地址

    type: 請求方式

    data:可選,發(fā)送到服務器的數(shù)據(jù)

    success:可選,請求成功時運行的函數(shù)

    1).data:包含結果的數(shù)據(jù)

    2).status:包含請求的狀態(tài)

    3).jqXHR:包含XmlHttpRequest對象

    dataType:服務器響應的數(shù)據(jù)類型,默認將智能判斷

    其余參數(shù)詳情參見:http://www.w3school.com.cn/jquery/ajax_ajax.asp

    1>.test格式 --獲取時間的時,分,秒

    后臺代碼:

     
     
     
     
    1. public partial class textData : System.Web.UI.Page
    2.    {
    3.        protected void Page_Load(object sender, EventArgs e)
    4.        {
    5.            string hour = DateTime.Now.Hour.ToString();
    6.            string minute = DateTime.Now.Minute.ToString();
    7.            string second = DateTime.Now.Second.ToString();
    8.            string textStr = hour + "/" + minute + "/" + second;
    9.            Response.Write(textStr);
    10.            Response.End();
    11.        }
    12.    }

    前臺獲取代碼:

     
     
     
     

    2>.Json格式 --獲取時間的時,分,秒

    我們需要在后臺返回Json格式的數(shù)據(jù),添加一個dll鏈接庫,類似.Net中處理Json數(shù)據(jù)的API ,如圖:

    Json格式后臺代碼:

     
     
     
     
    1. Json后臺
    2.  //添加引用
    3.  using Newtonsoft.Json;
    4.  namespace AJAX.Json
    5.  {
    6.      public partial class jsonData : System.Web.UI.Page
    7.      {
    8.          protected void Page_Load(object sender, EventArgs e)
    9.          {
    10.              string hour = DateTime.Now.Hour.ToString();
    11.              string minute = DateTime.Now.Minute.ToString();
    12.              string second = DateTime.Now.Second.ToString();
    13.  
    14.              //匿名類型
    15.              var time = new { h = hour, m = minute, s = second };
    16.  
    17.              //轉Json格式
    18.              var jsonStr = JsonConvert.SerializeObject(new[] { time });
    19.  
    20.              Response.Write(jsonStr);
    21.  
    22.              Response.End();
    23.          }
    24.      }
    25.  }

    Json格式前臺代碼:

     
     
     
     
    1.     

    3>.xml格式--獲取用戶名,出生年月

    Xml格式后臺代碼:

     
     
     
     
    1. //添加引用
    2. using System.Xml;
    3. namespace AJAX.Ajax_Xml
    4. {
    5.     public partial class XmlData : System.Web.UI.Page
    6.     {
    7.         protected void Page_Load(object sender, EventArgs e)
    8.         {
    9.             string name = "zld";
    10.             string birth = "1990-1-8";
    11.             //第一種:直接字符串拼接
    12.             string xmlStr = "" + name + "" + birth + "";
    13.             //第二種:XmlDocument創(chuàng)建
    14.             //創(chuàng)建文檔
    15.             XmlDocument xmlDocument = new XmlDocument();
    16.             //文檔頭聲明
    17.             XmlDeclaration xd = xmlDocument.CreateXmlDeclaration("1.0","utf-8",null);
    18.             xmlDocument.AppendChild(xd);
    19.             //添加根節(jié)點
    20.             XmlElement root = xmlDocument.CreateElement("root");
    21.             xmlDocument.AppendChild(root);
    22.             //給根節(jié)點添加子節(jié)點
    23.             XmlElement node1 = xmlDocument.CreateElement("Name");
    24.             node1.InnerText = name;
    25.             root.AppendChild(node1);
    26.             XmlElement node2 = xmlDocument.CreateElement("Birth");
    27.             node2.InnerText = birth;
    28.             root.AppendChild(node2);
    29.             //獲取節(jié)點元素
    30.             string xmlStr2 = xmlDocument.OuterXml;
    31.             Response.Write(xmlStr2);
    32.             Response.End();
    33.         }
    34.     }
    35. }

    Xml格式前臺代碼:

     
     
     
     
    1.