利用xmlHttp实现一个简单的Ajax无刷新

        最近在研究无刷新方面的技术,今天偶然遇到一个网友,和他讨论了一下。
        下面是利用xmlHttp实现一个简单的Ajax:
        以下是CodeNameClient.apsx的html的source:

<% @ Page language = " c# "  Codebehind = " CodeNameClient.aspx.cs "  AutoEventWireup = " false "  Inherits = " CodeName.CodeNameClient "  codePage = " 932 " %>
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"  >
< HTML >
    
< HEAD >
        
< title > WebForm1 </ title >
        
< meta  name ="GENERATOR"  Content ="Microsoft Visual Studio .NET 7.1" >
        
< meta  name ="CODE_LANGUAGE"  Content ="C#" >
        
< meta  name ="vs_defaultClientScript"  content ="JavaScript" >
        
< meta  name ="vs_targetSchema"  content ="http://schemas.microsoft.com/intellisense/ie5" >
        
< link  type ="text/css"  rel ="stylesheet"  href ="StyleSheet.css" >
        
< script  language ="JavaScript" >
        
<!--
            
function  Test(objSrc,objDes) 
            {
                
try  {
                    xmlHttp 
=   new  ActiveXObject( " Microsoft.XMLHTTP " );
                } 
catch (e) {
                    xmlHttp 
=   new  XMLHttpRequest();
                }
        
                xmlHttp.onreadystatechange 
=   function () {
                    
if  (xmlHttp.readyState  ==   4 ) {
                        
if  (xmlHttp.status  ==   200 ) {
                            
var  data  =  xmlHttp.responseText;
                            document.getElementById(objDes).value 
=  data;
                        }
                    }
                }
        
                xmlHttp.open(
" GET " , " CodeNameServer.aspx?testid= "   +  objSrc.value);
                xmlHttp.send(
null );
            }
        
-->
        
</ script >
    
</ HEAD >
    
< body  ms_positioning ="GridLayout" >
        
< form  id ="FromCodeName"  method ="post"  runat ="server" >
            
< table  id ="Table1"  height ="100%"  cellspacing ="0"  cellpadding ="0"  width ="100%"  border ="0" >
                
< tr >
                    
< td  nowrap align ="right"  width ="20%" > 改变文本内容:
                    
</ td >
                    
< td  nowrap align ="left"  width ="20%" >< asp:textbox  id ="TextBoxJCode1"  runat ="server"  height ="25px" ></ asp:textbox ></ td >
                    
< td  nowrap align ="left"  width ="15%" > 服务器端返回: </ td >
                    
< td  nowrap align ="left"  width ="45%" >< asp:textbox  id ="TextBoxJName1"  runat ="server"  height ="25px"  width ="296px" ></ asp:textbox ></ td >
                
</ tr >
            
</ table >
        
</ form >
    
</ body >
</ HTML >



        该aspx页面中的js中的Test()实现一个递归的用xmlHttp读取指定的url的Response信息,并把读取的值赋给TextBoxJName1。

以下是CodeNameClient.apsx.cs:

None.gif using  System;
None.gif
using  System.Collections;
None.gif
using  System.ComponentModel;
None.gif
using  System.Data;
None.gif
using  System.Drawing;
None.gif
using  System.Web;
None.gif
using  System.Web.SessionState;
None.gif
using  System.Web.UI;
None.gif
using  System.Web.UI.WebControls;
None.gif
using  System.Web.UI.HtmlControls;
None.gif
None.gif
namespace  CodeName
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    
public class CodeNameClient : System.Web.UI.Page
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif
InBlock.gif        
protected System.Web.UI.WebControls.TextBox TextBoxJCode1;
InBlock.gif        
protected System.Web.UI.WebControls.TextBox TextBoxJName1;
InBlock.gif    
InBlock.gif        
private void Page_Load(object sender, System.EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            TextBoxJCode1.Attributes.Add(
"onchange","Test(this,'TextBoxJName1');");
ExpandedSubBlockEnd.gif        }

InBlock.gif
ContractedSubBlock.gifExpandedSubBlockStart.gif        
dot.gif#region
InBlock.gif        
override protected void OnInit(EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            InitializeComponent();
InBlock.gif            
base.OnInit(e);
ExpandedSubBlockEnd.gif        }

InBlock.gif        
InBlock.gif        
private void InitializeComponent()
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{    
InBlock.gif            
this.Load += new System.EventHandler(this.Page_Load);
InBlock.gif
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif        
#endregion

ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}

None.gif


CodeNameServer:(必须是一个空白的文件的aspx,不能有任何的html标签)
以下是CodeNameServer.aspx:(只有这一行)

<% @ Page language = " c# "  Codebehind = " CodeNameServer.aspx.cs "  AutoEventWireup = " false "  Inherits = " CodeName.CodeNameServer "   %>



以下是CodeNameServer.aspx.cs:

None.gif using  System;
None.gif
using  System.Collections;
None.gif
using  System.ComponentModel;
None.gif
using  System.Data;
None.gif
using  System.Drawing;
None.gif
using  System.Web;
None.gif
using  System.Web.SessionState;
None.gif
using  System.Web.UI;
None.gif
using  System.Web.UI.WebControls;
None.gif
using  System.Web.UI.HtmlControls;
None.gif
None.gif
namespace  CodeName
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif
InBlock.gif 
public class CodeNameServer : System.Web.UI.Page
ExpandedSubBlockStart.gifContractedSubBlock.gif 
dot.gif{
InBlock.gif  
private void Page_Load(object sender, System.EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif  
dot.gif{  
InBlock.gif            
string testid = "";
InBlock.gif
InBlock.gif            
if (Request.QueryString.Keys.Count > 0 && Request.QueryString["testid"].Length > 0)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                testid 
= Request.QueryString["testid"];                
ExpandedSubBlockEnd.gif            }
            
InBlock.gif
InBlock.gif            Response.Write(
"要返回去的结果:"+testid );            
ExpandedSubBlockEnd.gif  }

InBlock.gif
ContractedSubBlock.gifExpandedSubBlockStart.gif  
dot.gif#region
InBlock.gif  
override protected void OnInit(EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif  
dot.gif{
InBlock.gif   InitializeComponent();
InBlock.gif   
base.OnInit(e);
ExpandedSubBlockEnd.gif  }

InBlock.gif  
InBlock.gif  
private void InitializeComponent()
ExpandedSubBlockStart.gifContractedSubBlock.gif  
dot.gif{    
InBlock.gif   
this.Load += new System.EventHandler(this.Page_Load);
ExpandedSubBlockEnd.gif  }

ExpandedSubBlockEnd.gif  
#endregion

ExpandedSubBlockEnd.gif }

ExpandedBlockEnd.gif}

None.gif
None.gif


            CodeNameServer实现获取客户端xmlHttp打开的CodeNameServer.aspx?testid=XXX中的testid的值,并Response输出,并立即被CodeNameClient中的xmlHttp读取。

        右边的运行结果是不是正确?TextBoxJName1的值是不是等于“要返回去的结果:”TextBoxJCode1的值?

        本文是和csdn网友一起讨论。



 

转载于:https://www.cnblogs.com/jintan/archive/2005/09/19/239781.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值