国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

通過XMLHttpRequest和jQuery實現ajax的幾種方式

2019-11-20 11:39:36
字體:
來源:轉載
供稿:網友

示例一:利用Ajax來動態獲取時間的例子。

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="顯示時間" onclick="btnclick()" />  </div>  </form></body></html>

創建一個“一般處理程序”來處理前臺請求,返回系統當前時間:

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對象  if (window.XMLHttpRequest) {    // Firefox等現代瀏覽器中的XMLHttpRequest對象創建    httprequest = new XMLHttpRequest();  }  else if (window.ActiveXObject) {    // IE中的XMLHttpRequest對象創建    httprequest = new ActiveXObject("Microsoft.XMLHTTP");  }  if (!httprequest) {    alert("創建httprequest對象出現異常!");  }  httprequest.open("POST", "Handler.ashx", true);  //httprequest向handler發送post請求,最后參數是設定是否為異步請求,true為異步,false為同步  httprequest.onreadystatechange = function () {    //指定onreadystatechange事件句柄對應的函數    if (httprequest.readyState == 4) {      //4代表服務器返回完成      if (httprequest.status == 200) {        //200代表成功了        document.getElementById("text1").value = httprequest.responseText;        //responsetext表示服務器返回的文本,還有一種方式是responseXML是為了獲取服務器返回的xml      }      else {        alert("AJAX服務器返回錯誤!");      }    }  }  httprequest.send();  //在這里才真正的向服務器端發送請求}

我們用jquery來前臺js代碼會變得十分簡潔:

基于jquery編寫的js代碼:

注意:HTML代碼要把button的onclick事件去掉,因為我們直接在js用了事件綁定。

$(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;      }    });  });});

不得不說jquery“簡約而不簡單”……

jquery中的$.ajax集合了get、post方法,默認的是get。

如果直接用POST的話,代碼更簡單

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

示例二:

一、XMLHttpRequest實現獲取數據

不使用jQuery實現頁面不刷新獲取內容的方式,我們這里采用XMLHttpRequest原生代碼實現;

js代碼如下:

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

插入HTML代碼:

<a href = "hello.txt">點擊獲取文本內容</a>

 二、jQuery實現ajax獲取信息

這個例子是動態的從后臺獲取數據來改變下拉按鈕的內容;

js代碼如下:

function bindCarteam0(){     //通過URL請求數據     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類型有get和post兩種;

post 可以傳輸的數據量比較大,get有字節限制;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 纳雍县| 宝清县| 博乐市| 平顺县| 包头市| 高唐县| 玛纳斯县| 衡南县| 昔阳县| 滨州市| 湖口县| 当阳市| 疏勒县| 镇坪县| 万宁市| 黔江区| 鲁山县| 容城县| 邻水| 栾川县| 建平县| 高密市| 青神县| 和顺县| 舒兰市| 合作市| 油尖旺区| 赣州市| 铜鼓县| 五莲县| 田东县| 咸阳市| 天门市| 峨眉山市| 塔河县| 新营市| 夏津县| 宁陵县| 惠州市| 灌阳县| 赤水市|