利用XMLHTTP來進行非同步呼叫Server 應用程式或 Web Service,處理回傳資料迅速更新網頁資料,以達成AJAX的效果
小弟開發ajax的程式已經很久了....都是拉一下ajax元件..寫幾行程式碼就結束了....
最近看到幾篇不錯的ajax基礎文章,介紹非同步傳輸的用法...還不錯...
小弟也做了幾個ajax的範例...以最基礎的方法實作....不用元件了...呵呵..在此分享給大家呀...
1.呼叫Server應用程式
ServerAJAX.aspx
01 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ServerAJAX.aspx.cs" Inherits="ajax_ServerAJAX" %>
02
03 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
04 <html xmlns="http://www.w3.org/1999/xhtml">
05 <head id="Head1" runat="server">
06 <title>Timer</title>
07
08 <script language="javascript" type="text/javascript">
09
10 var XmlHttp=new ActiveXObject("Microsoft.XMLhttp");
11
12 function sendAJAX()
13 {
14 XmlHttp.Open("POST","ServerTimer.aspx",true);
15 XmlHttp.send(null);
16 XmlHttp.onreadystatechange=ServerProcess;
17 }
18
19 function ServerProcess()
20 {
21 if (XmlHttp.readystate==4 || XmlHttp.readystate=='complete')
22 {
23 document.getElementById('showTimer').innerHTML = XmlHttp.responseText;
24 }
25 }
26
27 setInterval('sendAJAX()',1000);
28
29 </script>
30
31 </head>
32 <body>
33 <form id="form1" runat="server">
34 <div id="showTimer">
35 </div>
36 </form>
37 </body>
38 </html>
39
02
03 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
04 <html xmlns="http://www.w3.org/1999/xhtml">
05 <head id="Head1" runat="server">
06 <title>Timer</title>
07
08 <script language="javascript" type="text/javascript">
09
10 var XmlHttp=new ActiveXObject("Microsoft.XMLhttp");
11
12 function sendAJAX()
13 {
14 XmlHttp.Open("POST","ServerTimer.aspx",true);
15 XmlHttp.send(null);
16 XmlHttp.onreadystatechange=ServerProcess;
17 }
18
19 function ServerProcess()
20 {
21 if (XmlHttp.readystate==4 || XmlHttp.readystate=='complete')
22 {
23 document.getElementById('showTimer').innerHTML = XmlHttp.responseText;
24 }
25 }
26
27 setInterval('sendAJAX()',1000);
28
29 </script>
30
31 </head>
32 <body>
33 <form id="form1" runat="server">
34 <div id="showTimer">
35 </div>
36 </form>
37 </body>
38 </html>
39
ServerAJAX.aspx.cs
01
using System;
02
using System.Data;
03
using System.Configuration;
04
using System.Collections;
05
using System.Web;
06
using System.Web.Security;
07
using System.Web.UI;
08
using System.Web.UI.WebControls;
09
using System.Web.UI.WebControls.WebParts;
10
using System.Web.UI.HtmlControls;
11
12
public partial class ajax_ServerAJAX : System.Web.UI.Page
13
{
14
protected void Page_Load(object sender, EventArgs e)
15
{
16
17
}
18
}

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

ServerTimer.aspx
01 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ServerTimer.aspx.cs" Inherits="ajax_ServerTimer" %>
02
03 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
04 <html xmlns="http://www.w3.org/1999/xhtml">
05 <head id="Head1" runat="server">
06 <title>Timer</title>
07 </head>
08 <body>
09 <form id="form1" runat="server">
10 <div>
11 </div>
12 </form>
13 </body>
14 </html>
15
02
03 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
04 <html xmlns="http://www.w3.org/1999/xhtml">
05 <head id="Head1" runat="server">
06 <title>Timer</title>
07 </head>
08 <body>
09 <form id="form1" runat="server">
10 <div>
11 </div>
12 </form>
13 </body>
14 </html>
15
ServerTimer.aspx.cs
01
using System;
02
using System.Data;
03
using System.Configuration;
04
using System.Collections;
05
using System.Web;
06
using System.Web.Security;
07
using System.Web.UI;
08
using System.Web.UI.WebControls;
09
using System.Web.UI.WebControls.WebParts;
10
using System.Web.UI.HtmlControls;
11
12
public partial class ajax_ServerTimer : System.Web.UI.Page
13
{
14
protected override void Render(HtmlTextWriter output)
15
{
16
output.Write(DateTime.Now.ToString());
17
}
18
}

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

2.呼叫Web Service
WebServiceTimer.aspx
01 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="WebServiceTimer.aspx.cs"
02 Inherits="ajax_WebServiceTimer" %>
03
04 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
05 <html xmlns="http://www.w3.org/1999/xhtml">
06 <head id="Head1" runat="server">
07 <title>Timer</title>
08
09 <script language="javascript" type="text/javascript">
10
11 var XmlHttp=new ActiveXObject("Microsoft.XMLhttp");
12
13 function sendAJAX()
14 {
15 XmlHttp.Open("POST","WebServiceTimer.asmx/Timer",true);
16 XmlHttp.send(null);
17 XmlHttp.onreadystatechange=ServerProcess;
18 }
19
20 function ServerProcess()
21 {
22 if (XmlHttp.readystate==4 || XmlHttp.readystate=='complete')
23 {
24 document.getElementById('showTimer').innerHTML = XmlHttp.responseXML.getElementsByTagName('string')[0].firstChild.data
25 }
26 }
27
28 setInterval('sendAJAX()',1000);
29
30 </script>
31
32 </head>
33 <body>
34 <form id="form1" runat="server">
35 <div id="showTimer">
36 </div>
37 </form>
38 </body>
39 </html>
40
02 Inherits="ajax_WebServiceTimer" %>
03
04 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
05 <html xmlns="http://www.w3.org/1999/xhtml">
06 <head id="Head1" runat="server">
07 <title>Timer</title>
08
09 <script language="javascript" type="text/javascript">
10
11 var XmlHttp=new ActiveXObject("Microsoft.XMLhttp");
12
13 function sendAJAX()
14 {
15 XmlHttp.Open("POST","WebServiceTimer.asmx/Timer",true);
16 XmlHttp.send(null);
17 XmlHttp.onreadystatechange=ServerProcess;
18 }
19
20 function ServerProcess()
21 {
22 if (XmlHttp.readystate==4 || XmlHttp.readystate=='complete')
23 {
24 document.getElementById('showTimer').innerHTML = XmlHttp.responseXML.getElementsByTagName('string')[0].firstChild.data
25 }
26 }
27
28 setInterval('sendAJAX()',1000);
29
30 </script>
31
32 </head>
33 <body>
34 <form id="form1" runat="server">
35 <div id="showTimer">
36 </div>
37 </form>
38 </body>
39 </html>
40
WebServiceTimer.aspx.cs
01
using System;
02
using System.Data;
03
using System.Configuration;
04
using System.Collections;
05
using System.Web;
06
using System.Web.Security;
07
using System.Web.UI;
08
using System.Web.UI.WebControls;
09
using System.Web.UI.WebControls.WebParts;
10
using System.Web.UI.HtmlControls;
11
12
public partial class ajax_WebServiceTimer : System.Web.UI.Page
13
{
14
protected void Page_Load(object sender, EventArgs e)
15
{
16
17
}
18
}

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

WebServiceTimer.asmx
1 <%@ WebService Language="C#" CodeBehind="~/App_Code/WebServiceTimer.cs" Class="WebServiceTimer" %>
WebServiceTimer.cs
01
using System;
02
using System.Web;
03
using System.Collections;
04
using System.Web.Services;
05
using System.Web.Services.Protocols;
06
07
/// <summary>
08
/// WebServiceTimer 的摘要描述
09
/// </summary>
10
[WebService(Namespace = "http://tempuri.org/")]
11
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
12
public class WebServiceTimer : System.Web.Services.WebService
13
{
14
15 public WebServiceTimer()
16
{
17
18 //如果使用設計的元件,請取消註解下行程式碼
19
//InitializeComponent();
20
}
21
22 [WebMethod]
23
public string Timer()
24
{
25
return DateTime.Now.ToString();
26
}
27
28
}
29

02

03

04

05

06

07


08

09

10

11

12

13

14

15 public WebServiceTimer()
16

17

18 //如果使用設計的元件,請取消註解下行程式碼
19

20

21

22 [WebMethod]
23

24

25

26

27

28

29
執行結果:
更多有關AJAX的介紹:
微軟 ASP.NET 2.0 的 AJAX 利劍 ~ Atlas Framework
Ajax ?用 WebService ??例子