WebForm页面使用Ajax

AJAX:”Asynchronous JavaScript and XML”
  中文意思:异步JavaScript和XML。指一种创建交互式网页应用的网页开发技术。AJAX并非缩写词,而是由Jesse James Gaiiett创造的名词。
  AJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术:
  1、web标准( Standards-Based Presentation )XHTML+CSS的表示;
  2、使用 DOM( Document Object Model )进行动态显示及交互;
  3、使用 XML 和 XSLT 进行数据交换及相关操作,使用 XMLHttpRequest 进行异步数据查询、检索.
   简单理解为:JavaScript + XMLHttpRequest + CSS +服务器端 的集合.废话少说,下面直接上代码(这里我只写以Post方式发送请求的代码,关于JQuery中使用ajax跟以Get方式发送请求,我就不写了),在下面的代码中,我会从建立异步对象,到在WebForm页面中使用异步对象来说说我的体会。
 
1、用js创建兼容浏览器的ajax异步对象
复制代码
function createAjax() {
var ajaxObject = false;
try {
ajaxObject = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
ajaxObject = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
ajaxObject = false;
}
}
if (!ajaxObject && typeof (XMLHttpRequest) != 'undefinded') {
ajaxObject = new XMLHttpRequest();
}
return ajaxObject;
}
复制代码
 2、页面中ajax的使用
复制代码
<script type="text/javascript">
var ajaxObject;
window.onload = function () {
ajaxObject = createAjax();
getControl("btnOK").onclick = submitData1;
}
function submitData1() {
var txtName = getControl("txtName").value;
//以Post方式请求发送请求
ajaxObject.open("POST", "ResponseEnd.aspx", true);
//以Post方式发送异步请求需要设置请求头
ajaxObject.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajaxObject.onreadystatechange = function () {
if (ajaxObject.readyState == 4) {
//状态200表示异步对象已经完全接收完服务器响应的数据
if (ajaxObject.status == 200) {
var res = ajaxObject.responseText;
alert(res);
}
}
}
//发送异步请求(Post方式发送请求在send里面书写自己要发送给服务器的参数)
ajaxObject.send("flag=1&name=" + txtName);
}
</script>
复制代码
3、后台页面ResponseEnd.aspx.cs对数据的处理
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
  
namespace Web
{
    public partial class ResponseEnd : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(Request["flag"]))
            {
  
                ShuChu();
            }
        }
        private void ShuChu()
        {
            #region 方法一
            //try
            //{
            //    string name = Request["name"];
            //    Response.Write(name);
            //}
            //catch (Exception ex)
            //{
            //    throw new Exception(ex.Message);
            //}
            //finally
            //{
            //    Response.End();
            //} 
            #endregion
  
            #region 方法二
            //try
            //{
            //    string name = Request["name"];
            //    Response.Write(name);
            //    this.Page.Visible = false;
            //    Context.ApplicationInstance.CompleteRequest();
            //}
            //catch (Exception ex)
            //{
            //    throw new Exception(ex.Message);
            //} 
            #endregion
  
            try
            {
                string name = Request["name"];
                Response.Write(name);
                Response.End();
            }
            catch (System.Threading.ThreadAbortException ex)
            {
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            
        }
    }
}
原文地址:https://www.cnblogs.com/liangxiaofeng/p/5642761.html