所謂AJAX就是(Asynchronous JavaScript and XML)非同步javascript和xml,首先說下我感覺沒有ajax的話我們所遇到的問題,比如在我們看某個視頻的時候,看下面的評價,當我們點擊下一頁的時候就是出現一個情況:我們的視頻會重新開始!所以ajax在某些方面是必須的!
下面進入正題,我們通常會使用'一般處理頁'來處理ajax(*.ashx)在用戶端用javascript來處理需要傳入伺服器端或者從伺服器端傳過來的資料(這是我的理解)下面我自己寫的一個很不錯的ajax模型:在一般處理頁中的代碼:
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Services;namespace WebApplication1{ /// <summary> /// Handler 的摘要說明 /// </summary> [WebService(Namespace="http://tempuri.org/")]//一個webservice的引用為了在下面使用datatime [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]//擷取web服務互通性(wsi)的規範 public class Handler : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; context.Response.Write(DateTime.Now.ToString()); //把write()裡面的資料傳入用戶端 } public bool IsReusable { get { return false; } } }}
下面是用戶端的代碼:
<!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> <title></title> <script type="text/javascript"> function butclick() { 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(); //在這裡才真正的向伺服器端發送請求 } </script></head><body> <input id="text1" type="text" /> <input id="Button1" type="button" value="button" onclick="butclick()" /></body></html>
運行結果:
在代碼裡面都有注釋,希望和我一樣的初學者能看懂,還有就是如果你看過有什麼指教的話,留言。不勝感激!