最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

通過(guò)XMLHttpRequest和jQuery實(shí)現(xiàn)ajax的幾種方式

 更新時(shí)間:2015年08月28日 09:22:19   投稿:mrr  
AJAX大家已經(jīng)都知道了,是為了實(shí)現(xiàn)異步通訊,提高用戶(hù)體驗(yàn)度,而將很多舊知識(shí)(XML,DOM,JavaScript,HTML,Jquery,Css……)重新融合的一個(gè)新的知識(shí)框架。而,XMLHttpRequest對(duì)象則是其中的重重之中,本篇文章主要給大家介紹通過(guò)XMLHttpRequest和jQuery實(shí)現(xiàn)ajax的幾種方式

示例一:利用Ajax來(lái)動(dòng)態(tài)獲取時(shí)間的例子。

HTML代碼:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <title></title>
  <script type="text/javascript" src="Scripts/jquery-1.7.1.js"></script>
  <script type="text/javascript" src="Scripts/jwy.js"></script> 
</head>
<body>
  <form id="form1" runat="server">
  <div>
    <input type="text" name="textbox" id="text1" />
    <input type="button" name="button" id="Button1" value="顯示時(shí)間" onclick="btnclick()" />
  </div>
  </form>
</body>
</html>

創(chuàng)建一個(gè)“一般處理程序”來(lái)處理前臺(tái)請(qǐng)求,返回系統(tǒng)當(dāng)前時(shí)間:

Handler.ashx

<%@ WebHandler Language="C#" Class="Handler" %>
using System;
using System.Web;
using System.Linq;
using System.Collections.Generic;
using System.Text;
public class Handler : IHttpHandler {
  public void ProcessRequest (HttpContext context) {
    context.Response.ContentType = "text/plain";
    context.Response.Write(ShowTime());
  }
  public bool IsReusable {
    get {
      return false;
    }
  }
  public static string ShowTime()
  {
    return DateTime.Now.ToString(); 
  }
}

js代碼:

function btnclick() {
  var httprequest = null;
  // 初始化XMLHttpRequest對(duì)象
  if (window.XMLHttpRequest) {
    // Firefox等現(xiàn)代瀏覽器中的XMLHttpRequest對(duì)象創(chuàng)建
    httprequest = new XMLHttpRequest();
  }
  else if (window.ActiveXObject) {
    // IE中的XMLHttpRequest對(duì)象創(chuàng)建
    httprequest = new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (!httprequest) {
    alert("創(chuàng)建httprequest對(duì)象出現(xiàn)異常!");
  }
  httprequest.open("POST", "Handler.ashx", true);
  //httprequest向handler發(fā)送post請(qǐng)求,最后參數(shù)是設(shè)定是否為異步請(qǐng)求,true為異步,false為同步
  httprequest.onreadystatechange = function () {
    //指定onreadystatechange事件句柄對(duì)應(yīng)的函數(shù)
    if (httprequest.readyState == 4) {
      //4代表服務(wù)器返回完成
      if (httprequest.status == 200) {
        //200代表成功了
        document.getElementById("text1").value = httprequest.responseText;
        //responsetext表示服務(wù)器返回的文本,還有一種方式是responseXML是為了獲取服務(wù)器返回的xml
      }
      else {
        alert("AJAX服務(wù)器返回錯(cuò)誤!");
      }
    }
  }
  httprequest.send();
  //在這里才真正的向服務(wù)器端發(fā)送請(qǐng)求
}

我們用jquery來(lái)前臺(tái)js代碼會(huì)變得十分簡(jiǎn)潔:

基于jquery編寫(xiě)的js代碼:

注意:HTML代碼要把button的onclick事件去掉,因?yàn)槲覀冎苯釉趈s用了事件綁定。

$(document).ready(function () {
  //button1綁定事件
  $("#Button1").bind("click", function () {
    $.ajax({
      url: "Handler.ashx",
      type: "POST",
      success: function (data) {
        //$("#text1").val(data);
        document.getElementById("text1").value = data;
      }
    });
  });
});

不得不說(shuō)jquery“簡(jiǎn)約而不簡(jiǎn)單”……

jquery中的$.ajax集合了get、post方法,默認(rèn)的是get。

如果直接用POST的話(huà),代碼更簡(jiǎn)單

$(document).ready(function () {
  //button1綁定事件
  $("#Button1").bind("click", function () {
    $.post("Handler.ashx", function (data) {
  document.getElementById("text1").value = data;
    });  
 });
});

示例二:

一、XMLHttpRequest實(shí)現(xiàn)獲取數(shù)據(jù)

不使用jQuery實(shí)現(xiàn)頁(yè)面不刷新獲取內(nèi)容的方式,我們這里采用XMLHttpRequest原生代碼實(shí)現(xiàn);

js代碼如下:

//1.獲取a節(jié)點(diǎn),并為其添加Oncilck響應(yīng)函數(shù)
document.getElementsByTagName("a")[0].onclick = function(){
   //3、創(chuàng)建一個(gè)XMLHttpRequest();
  var request = new XMLHttpRequest();
  //4、準(zhǔn)備發(fā)送請(qǐng)求的數(shù)據(jù)url
  var url = this.href;
  var method = "GET";
  //5、調(diào)用XMLHttpRequest對(duì)象的open方法
  request.open(method,url);
  //6、調(diào)用XMLHttpRequest對(duì)象的send方法
  request.send(null);
  //7、為XMLHttpRequest對(duì)象添加onreadystatechange 響應(yīng)函數(shù)
  request.onreadystatechange = function(){
    //8、判斷響應(yīng)是否完成:XMLHttpRequest 對(duì)象的readystate的屬性值為4的時(shí)候
    if(request.readyState == 4){
       //9、在判斷響應(yīng)是否可用:XMLHttpRequest 對(duì)象status 屬性值為200
      if(request.status == 200){
           //10、響應(yīng)結(jié)果
           alert(request.responseText);
      }   
    }  
  }    
      //2、取消a節(jié)點(diǎn)的額默認(rèn)行為
      return false;    
}

插入HTML代碼:

<a href = "hello.txt">點(diǎn)擊獲取文本內(nèi)容</a>

 二、jQuery實(shí)現(xiàn)ajax獲取信息

這個(gè)例子是動(dòng)態(tài)的從后臺(tái)獲取數(shù)據(jù)來(lái)改變下拉按鈕的內(nèi)容;

js代碼如下:

function bindCarteam0(){
     //通過(guò)URL請(qǐng)求數(shù)據(jù)
     var URL = <select:link page="/xiaoshouwl.do?method=getCarteamList"/>;
      $.ajax({
        url:URL,
        type:'GET',
        dataType: "json",
        success:function(html){
          var str="<option value='-1'>全部</option>";
          for(var i=0;i<html.length;i++){
            str+="<option value='"+html[i].id+"'>"+html[i].name+"</option>";
          }
          $("#carteam_code").empty().html(str);
        }
      });
   }

HTML代碼如下:

<select:select property="carteam_code" styleId="carteam_code" style="width:150px">
                     <select:option value="-1">全部</select:option>
                </select:select>

其中type類(lèi)型有g(shù)et和post兩種;

post 可以傳輸?shù)臄?shù)據(jù)量比較大,get有字節(jié)限制;

相關(guān)文章

  • 以jQuery中$.Deferred對(duì)象為例講解promise對(duì)象是如何處理異步問(wèn)題

    以jQuery中$.Deferred對(duì)象為例講解promise對(duì)象是如何處理異步問(wèn)題

    Promises是一種令代碼異步行為更加優(yōu)雅的抽象,它很有可能是JavaScript的下一個(gè)編程范式,一個(gè)Promise即表示任務(wù)結(jié)果,無(wú)論該任務(wù)是否完成。本文以jQuery中$.Deferred對(duì)象為例講解promise對(duì)象是如何處理異步問(wèn)題,需要的朋友參考下
    2015-11-11
  • 原來(lái)Jquery.load的方法可以一直load下去

    原來(lái)Jquery.load的方法可以一直load下去

    使用jQuery.load方法加載一個(gè)網(wǎng)頁(yè),那么這個(gè)網(wǎng)頁(yè)內(nèi)部的js代碼是否能夠執(zhí)行呢,答案是肯定的,這就相當(dāng)于把load的內(nèi)容與主頁(yè)面進(jìn)行了合并一樣
    2011-03-03
  • 基于jQuery實(shí)現(xiàn)的旋轉(zhuǎn)彩圈實(shí)例

    基于jQuery實(shí)現(xiàn)的旋轉(zhuǎn)彩圈實(shí)例

    這篇文章主要介紹了基于jQuery實(shí)現(xiàn)的旋轉(zhuǎn)彩圈,涉及jQuery定時(shí)操作頁(yè)面元素的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • jQuery simpleModal插件的使用介紹

    jQuery simpleModal插件的使用介紹

    SimpleModal是一個(gè)輕量級(jí)的jQuery插件,它提供了一個(gè)模式對(duì)話(huà)框發(fā)展強(qiáng)大的接口。這篇文章主要介紹了jQuery simpleModal插件的使用,非常不錯(cuò),具有參考借鑒價(jià)值,對(duì)jquery simplemodal相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2016-08-08
  • JavaScript jQuery 中定義數(shù)組與操作及jquery數(shù)組操作

    JavaScript jQuery 中定義數(shù)組與操作及jquery數(shù)組操作

    這篇文章主要介紹了JavaScript jQuery 中定義數(shù)組與操作及jquery數(shù)組操作的相關(guān)資料,需要的朋友可以參考下
    2015-12-12
  • 23個(gè)超流行的jQuery相冊(cè)插件整理分享

    23個(gè)超流行的jQuery相冊(cè)插件整理分享

    本文羅列了23款目前非常受歡迎的jQuery插件,可以輕松建立起唯美的圖片切換特效的相冊(cè)功能,并且其中的一些還支持視頻和Flash。
    2011-04-04
  • 省市二級(jí)聯(lián)動(dòng)小案例講解

    省市二級(jí)聯(lián)動(dòng)小案例講解

    這篇文章主要介紹了省市二級(jí)聯(lián)動(dòng)小案例講解的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-07-07
  • jqNext能替代jQuery嗎

    jqNext能替代jQuery嗎

    隨著前端的發(fā)展和瀏覽器的升級(jí),jQuery也開(kāi)始有些缺陷,其中最主要的就是在處理大量數(shù)據(jù)時(shí)會(huì)出現(xiàn)性能問(wèn)題,而為了解決這個(gè)問(wèn)題,我們可以使用jqNext,這是jQuery的一個(gè)輕量級(jí)替代品,盡管它并不能完全取代jQuery,但在一些場(chǎng)景下使用起來(lái)是十分便利的
    2023-09-09
  • jquery判斷對(duì)象是否為空并遍歷對(duì)象的簡(jiǎn)單實(shí)例

    jquery判斷對(duì)象是否為空并遍歷對(duì)象的簡(jiǎn)單實(shí)例

    下面小編就為大家?guī)?lái)一篇jquery判斷對(duì)象是否為空并遍歷對(duì)象的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07
  • 基于JQuery和DWR實(shí)現(xiàn)異步數(shù)據(jù)傳遞

    基于JQuery和DWR實(shí)現(xiàn)異步數(shù)據(jù)傳遞

    這篇文章主要介紹了基于JQuery和DWR實(shí)現(xiàn)異步數(shù)據(jù)傳遞,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10

最新評(píng)論

锡林浩特市| 嘉兴市| 定兴县| 房山区| 东方市| 秀山| 梅州市| 西安市| 呼玛县| 来凤县| 梧州市| 武定县| 彭阳县| 六枝特区| 海安县| 镇安县| 和林格尔县| 吉安县| 西平县| 鄢陵县| 安泽县| 宝鸡市| 紫金县| 保亭| 府谷县| 攀枝花市| 仁布县| 荥阳市| 高邑县| 沙湾县| 博爱县| 板桥市| 钟祥市| 渑池县| 罗平县| 上杭县| 星座| 沅陵县| 双江| 柳江县| 托里县|