揭開(kāi)AJAX神秘的面紗(AJAX個(gè)人學(xué)習(xí)筆記)第2/5頁(yè)
應(yīng)用方式二:
在ASP.NET 中,內(nèi)置了一種非常適合Ajax開(kāi)發(fā)的后臺(tái)處理方式即HttpHandler類(lèi),實(shí)際上所有的HttpHandler類(lèi)都實(shí)現(xiàn)了IHttpHandler接口,用以進(jìn)行請(qǐng)求接收和回送響應(yīng)。
IHttpHandler這個(gè)接口提供了最基本的Web請(qǐng)求和Web響應(yīng)的封裝,可以將此接口看作是Web容器提供的基本的Web實(shí)現(xiàn)方式的封裝類(lèi)。
IHttpHandler接口具有一個(gè)方法:ProcessRequest(HttpContext context),及一個(gè)布爾值屬性:IsReusable。所有實(shí)現(xiàn)IHttpHandler接口的類(lèi)都必須實(shí)現(xiàn)上述方法和屬性,其中ProcessRequest方法用于接收和處理請(qǐng)求以及發(fā)送響應(yīng),而IsReusable指示其他請(qǐng)求是否可以使用IHttpHandler實(shí)例也就是說(shuō)后繼的Http請(qǐng)求是不是可以繼續(xù)使用實(shí)現(xiàn)了該接口的類(lèi)的實(shí)例,一般情況下設(shè)定為true。
應(yīng)用一案例代碼:
Default.aspx 文件代碼(只有前臺(tái)代碼,后臺(tái)無(wú)任何代碼):
<%@ 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>Ajax請(qǐng)求頁(yè)面</title>
<script type="text/javascript" language=javascript src="Ajax.js">
</script>
</head>
<body>
<form id="form1" runat="server">
<div align=center>
<div style="width:320px;height:150px" align=center>
<table border=0 cellpadding=0 cellspacing=0 width=300px>
<tr width=300px>
<td>請(qǐng)輸入回傳至服務(wù)器的文本</td>
</tr>
<tr>
<td><asp:TextBox runat="server" ID="txtCustomerInfo"></asp:TextBox></td>
</tr>
<tr>
<td><input type=button runat=server id="btnRequest" value="發(fā)送請(qǐng)求" onclick="startRequest(document.getElementById('txtCustomerInfo').value)" /></td>
</tr>
<tr>
<td>服務(wù)器處理后文本顯示如下</td>
</tr>
<tr>
<td>
<div style="width:100%;background-color:Yellow;color:black;height:48px" id="divServerMsg">
</div>
</td>
</tr>
</table>
</div>
</div>
</form>
</body>
</html>
Ajax.js 文件代碼(createXmlHttp()函數(shù)部分很通用,可以在自己的應(yīng)用程序中不用修改而直接復(fù)制):
var xmlHttp;
function createXmlHttp()
{
var activeKey=new Array("MSXML2.XMLHTTP.5.0",
"MSXML2.XMLHTTP.4.0",
"MSXML2.XMLHTTP.3.0",
"MSXML2.XMLHTTP",
"Microsoft.XMLHTTP");
if(window.ActiveXObject)
{
for(var i=0;i<activeKey.length;i++)
{
try
{
xmlHttp=new ActiveXObject(activeKey[i]);
if(xmlHttp!=null)
return xmlHttp;
}
catch(error)
{
continue;
}
}
throw new Error("客戶端瀏覽器版本過(guò)低,不支持XMLHttpRequest對(duì)象,請(qǐng)更新瀏覽器");
}
else if(window.XMLHttpRequest)
{
xmlHttp=new window.XMLHttpRequest();
}
}
function addUrlParameter(url,parameterName,parameterValue)
{
url+=(url.indexOf("?"))==-1 ? "?" : "&";//判斷當(dāng)前URL中是否存在? 即參數(shù)分隔符
url+=encodeURIComponent(parameterName)+"="+encodeURIComponent(parameterValue);
return url;
}
function startRequest(customerStr)
{
xmlHttp=createXmlHttp();
xmlHttp.onreadystatechange=readyStateChangeHandler;
xmlHttp.open("GET",addUrlParameter("AjaxPage.aspx","customerInfo",customerStr),null);
xmlHttp.send(null);
}
function readyStateChangeHandler()
{
if(xmlHttp.readyState==4)
{
if(xmlHttp.status==200)
{
var str=xmlHttp.responseText;
var div=document.getElementById("divServerMsg");
div.innerHTML="<b>"+str+"</b>";
}
}
}
AjaxPage.aspx 文件代碼(前臺(tái)):
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AjaxPage.aspx.cs" Inherits="AjaxPage" %>
<!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>無(wú)標(biāo)題頁(yè)</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>
AjaxPage.aspx.cs 文件代碼(后臺(tái)):
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class AjaxPage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string str = this.Request["customerInfo"].ToString();
string msg = "服務(wù)器獲得你的消息,時(shí)間:" + DateTime.Now.ToShortTimeString() + "<br>你的消息為:" + str + "<br>你的地址:" + this.Request.UserHostAddress;
this.Response.Write(msg);
this.Response.End();
}
}
- IE關(guān)閉時(shí)判斷及AJAX注銷(xiāo)案例學(xué)習(xí)
- Ajax與JSON的一些學(xué)習(xí)總結(jié)
- 那些年,我還在學(xué)習(xí)Ajax 學(xué)習(xí)筆記
- jquery中ajax學(xué)習(xí)筆記4
- jquery中ajax學(xué)習(xí)筆記3
- 從零開(kāi)始學(xué)習(xí)jQuery (六) jquery中的AJAX使用
- AJax 學(xué)習(xí)筆記二(onreadystatechange的作用)
- AJax 學(xué)習(xí)筆記一(XMLHTTPRequest對(duì)象)
- Jquery Ajax學(xué)習(xí)實(shí)例 向頁(yè)面發(fā)出請(qǐng)求,返回XML格式數(shù)據(jù)
- Ajax學(xué)習(xí)全套(最全最經(jīng)典)
相關(guān)文章
PHP Ajax實(shí)現(xiàn)頁(yè)面無(wú)刷新發(fā)表評(píng)論
PHP Ajax實(shí)現(xiàn)頁(yè)面無(wú)刷新發(fā)表評(píng)論...2006-12-12
Ajax結(jié)合php實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)
這篇文章主要為大家詳細(xì)介紹了Ajax結(jié)合php實(shí)現(xiàn)二級(jí)聯(lián)動(dòng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-08-08
你的jquery ajax無(wú)效和你的jquery引入路徑有關(guān)
當(dāng)你發(fā)現(xiàn)你的jquery ajax無(wú)效的時(shí)候,不妨使用 fire bug調(diào)試一下,這時(shí)你會(huì)發(fā)現(xiàn),提示"$"無(wú)效,為什么會(huì)有這種提示呢?可能是你引入jquery.js的路徑有問(wèn)題2013-06-06
ajax返回的json內(nèi)容進(jìn)行排序使用sort()方法實(shí)現(xiàn)
關(guān)于ajax返回的json內(nèi)容進(jìn)行排序,主要使用sort()對(duì)數(shù)組的元素進(jìn)行排序,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈,希望對(duì)大家有所幫助2013-07-07
Ajax通過(guò)XML異步提交的方法實(shí)現(xiàn)從數(shù)據(jù)庫(kù)獲取省份和城市信息實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)(xml方法)
這篇文章主要介紹了Ajax通過(guò)XML異步提交的方法實(shí)現(xiàn)從數(shù)據(jù)庫(kù)獲取省份和城市信息實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)(xml方法)的相關(guān)資料,我們要根據(jù)異步提交,局部刷新的思想來(lái)實(shí)現(xiàn)來(lái)提高用戶交互問(wèn)題,對(duì)ajax二級(jí)聯(lián)動(dòng)效果感興趣的朋友一起看看吧2016-11-11
Ajax跨域訪問(wèn)Cookie丟失問(wèn)題的解決方法
這篇文章主要介紹了Ajax跨域訪問(wèn)Cookie丟失問(wèn)題的解決方法,需要的朋友可以參考下2017-02-02
Ajax 高級(jí)功能之a(chǎn)jax向服務(wù)器發(fā)送數(shù)據(jù)
這篇文章主要介紹了Ajax 高級(jí)功能之a(chǎn)jax向服務(wù)器發(fā)送數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2016-08-08

