All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
ASP.NET中的doPostBack脚本函数实例_[Asp.Net教程]
delphi组件中常用的事件
C#中Label控件应用实例
PHP初学者14个典型疑难问题_[PHP教程]
asp.net2.0生成一个复杂的验证码,背景随机,字体随机,中英文数字随机_[Asp.Net教程]
实现XmlHttp跨域访问用ASP.NET后台代码_[Asp.Net教程]
Flex+asp.net上传文件_[Asp.Net教程]
SQL中的DDL,DML,DCL语言_mssql学习_编程技术
Asp.net中的mail的发送_[Asp.Net教程]
PHP开发技巧之用递归替换数组中的内容_php资料_编程技术
Reading number is top 10 pictures
Kim jong il's mistress, national beauty JinYuJi actor3
Ashlynn Brooke show proud chest measurement2
Startling Russian girl blind date scene3
八个盛产美女的国家2
Sora aoi on twitter4
上传几张色图
这张图有两句话,你看出来了吗?
BingBingFan apple dew point photo gallery3
Soong ching ling's former residence2
七步解决性冷淡
Download software ranking
apache-tomcat-6.0.33
Unix video tutorial2
Eclipse 4.2.2 For Win32
c#程序设计案例教程
Boxer vs Yellow1
Boxer's Top ten classic battle10
Sora aoi 120 minutes
jBuilder2006
超级战舰
Boxer's Top ten classic battle6
归海一刀 published in(发表于) 2014/1/30 1:11:14 Edit(编辑)
新瓶旧酒ASP.NET,AJAX(8),-,客户端脚本编程(Sys.Net命名空间下的)_[Asp.Net教程]

新瓶旧酒ASP.NET,AJAX(8),-,客户端脚本编程(Sys.Net命名空间下的)_[Asp.Net教程]

新瓶旧酒ASP.NET AJAX(8) - 客户端脚本编程(Sys.Net命名空间下的)_[Asp.Net教程]























新瓶旧酒ASP.NET AJAX(8) - 客户端脚本编程(Sys.Net命名空间下的WebRequestManager、WebRequest、WebRequestExecutor和XMLHttpExecutor)





介绍
学习一下Sys.Net命名空间下与web请求相关的类,WebRequestManager、WebRequest、WebRequestExecutor和XMLHttpExecutor





关键
1、Sys.Net.WebRequestManager Class
·add_completedRequest(handler); - 添加请求完成后的处理器
·remove_completedRequest(handler); - 移除请求完成后的处理器
·add_invokingRequest(handler); - 添加处理调用请求的处理器
·remove_invokingRequest(handler); - 移除处理调用请求的处理器
·defaultTimeout - 默认超时时间




2、Sys.Net.WebRequest Class
·add_completed(handler); - 添加请求完成后的处理器
·remove_completed(handler); - 移除请求完成后的处理器
·invoke(); - 执行请求
·getResolvedUrl(); - 转换为可用url
·body - HTTP的Body内容
·executor - 与当前WebRequest对象相关的executor
·headers - HTTP的头信息
·httpVerb - HTTP请求方式“GET”或“POST”
·timeout - 请求超时时间
·url - 请求的url
·userContext - 用户上下文




3、Sys.Net.WebRequestExecutor Class
·abort(); - 终止请求
·executeRequest(); - 执行请求
·getAllResponseHeaders(); - 获得全部头信息
·getResponseHeader(key); - 获得指定头信息
·aborted - 请求是否被终止
·responseAvailable - 请求是否成功完成
·responseData - 响应当前请求的Body文本
·started - 是否已经开始处理请求
·statusCode - 状态代码
·statusText - 状态信息
·timedOut - 请求是否超时
·xml - 响应当前请求的XMLDOM对象
·webRequest - 获得与当前executor相关的WebRequest对象




4、Sys.Net.XMLHttpExecutor Class
·abort(); - 终止请求
·executeRequest(); - 执行请求
·getAllResponseHeaders(); - 获得全部头信息
·getResponseHeader(key); - 获得指定头信息
·aborted - 请求是否被终止
·responseAvailable - 请求是否成功完成
·responseData - 响应当前请求的Body文本
·started - 是否已经开始处理请求
·statusCode - 状态代码
·statusText - 状态信息
·timedOut - 请求是否超时
·xml - 响应当前请求的XMLDOM对象





示例
GetTarget.xml



webabcd
27


ge
26


PostTarget.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="PostTarget.aspx.cs" Inherits="ClientScripting_SysNet_PostTarget" %>







Post Target测试页














<%= DateTime.Now.ToString() %>













WebRequestAndWebRequestExecutor.js
var getPage;
var postPage;
var displayElement;




function pageLoad()
{
getPage = "GetTarget.xml";
postPage = "PostTarget.aspx";
displayElement = get("resultId");
}




function GetWebRequest()
{
// 创建WebRequest对象
var wRequest = new Sys.Net.WebRequest();

// url - 请求的url
wRequest.set_url(getPage);

// getResolvedUrl() - 转换为可用url
alert(wRequest.getResolvedUrl());

// httpVerb - HTTP请求方式“GET”或“POST”
wRequest.set_httpVerb("GET");

// userContext - 用户上下文
wRequest.set_userContext("webabcd");

wRequest.add_completed(OnWebRequestCompleted);

displayElement.innerHTML = "";

// invoke() - 执行请求
wRequest.invoke();
}




function PostWebRequest()
{
// 创建WebRequest对象
var wRequest = new Sys.Net.WebRequest();

// url - 请求的url
wRequest.set_url(postPage);

// timeout - 超时时间
wRequest.set_timeout(500);

var body = "Message=信息信息信息信息信息信息信息信息信息信息信息信息信息信息信息"
// body - HTTP的Body内容
wRequest.set_body(body);




// headers - HTTP的头信息
wRequest.get_headers()["Content-Length"] = body.length;

wRequest.add_completed(OnWebRequestCompleted);




displayElement.innerHTML = "";

// invoke() - 执行请求
wRequest.invoke();
}




// executor - WebRequestExecutor对象
function OnWebRequestCompleted(executor, e)
{
// responseAvailable - 请求是否成功完成
if(executor.get_responseAvailable())
{
displayElement.innerHTML = "";

// 显示Web Request的用户上下文
// webRequest - 获得与当前executor相关的WebRequest对象
// userContext - 用户上下文
displayElement.innerHTML += "User Context:" + executor.get_webRequest().get_userContext();
displayElement.innerHTML += "

";

// 显示Web Request的状态
// statusCode - 状态代码
// statusText - 状态信息
displayElement.innerHTML += "Status Code:" + executor.get_statusCode();
displayElement.innerHTML += "Status Text:" + executor.get_statusText();
displayElement.innerHTML += "

";

// 显示Web Request的所有Header
// getAllResponseHeaders() - 获得全部头信息
displayElement.innerHTML += "Headers:" + executor.getAllResponseHeaders();
displayElement.innerHTML += "

";

// 显示Web Request的指定Header
// getResponseHeader() - 获得指定头信息
displayElement.innerHTML += executor.getResponseHeader("Content-Type");
displayElement.innerHTML += "

";

// 显示Web Request的Body
displayElement.innerHTML += "Body:";
if (document.all)
{
// responseData - 响应当前请求的Body文本
displayElement.innerText += "\r\n" + executor.get_responseData();
}
else
{
// Firefox
displayElement.textContent += "\r\n" + executor.get_responseData();
}
displayElement.innerHTML += "

";

// 显示XML数据
displayElement.innerHTML += "XML:";
if (document.all)
{
// xml - 响应当前请求的XMLDOM对象
displayElement.innerText += "\r\n" + executor.get_xml().xml;
}
else
{
// Firefox
displayElement.textContent += "\r\n" + "首节点:" + executor.get_xml().documentElement.nodeName;
}
}
else
{
// timedOut - 请求是否超时
if (executor.get_timedOut())
{
alert("超时");
}
// aborted - 请求是否被终止
else if (executor.get_aborted())
{
alert("请求被终止");
}
}
}




// 通知ScriptManager这段脚本已经加载完毕
if (typeof(Sys) !== "undefined") Sys.Application.notifyScriptLoaded();
WebRequestAndWebRequestExecutor.aspx
<%@ Page Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="WebRequestAndWebRequestExecutor.aspx.cs"
Inherits="ClientScripting_SysNet_WebRequestAndWebRequestExecutor" Title="WebRequest和WebRequestExecutor" %>











onclick="GetWebRequest()" value="GetWebRequest" />



onclick="PostWebRequest()" value="PostWebRequest" />













运行结果
1、单击“GetWebRequest”按钮
弹出框,信息:当前的URL
显示与“GetTarget.xml”相关的结果




2、单击“PostWebRequest”按钮
可能提示超时,也可能显示与“PostTarget.aspx”相关的结果





WebRequestManagerAndXMLHttpExecutor.js
var displayElement;




function pageLoad()
{
displayElement = get("ResultId");

// defaultTimeout - 默认超时时间
Sys.Net.WebRequestManager.set_defaultTimeout(500);

Sys.Net.WebRequestManager.add_completedRequest(OnWebRequestCompleted);

Sys.Net.WebRequestManager.add_invokingRequest
(
function (executor, e)
{
alert('调用请求前');
}
);
}




function GetData()
{
// 创建WebRequest对象
wRequest = new Sys.Net.WebRequest();




// url - 请求的url
wRequest.set_url("PostTarget.aspx");

if (document.all)
{
displayElement.innerText = "";
}
else
{
// Firefox
displayElement.textContent = "";
}

// invoke() - 执行请求
wRequest.invoke();

if (new Date().getSeconds() % 2 == 0)
{
// executor - 与当前WebRequest对象相关的executor
var executor = wRequest.get_executor();

// abort() - 终止请求
executor.abort();

// aborted - 与当前executor相关的请求是否被终止
alert('请求是否被终止:' + executor.get_aborted());
}
}




// executor - WebRequestExecutor对象
function OnWebRequestCompleted(executor, e)
{
// responseAvailable - 请求是否成功完成
if(executor.get_responseAvailable())
{
// 显示Web Request的Body
displayElement.innerHTML += "Body:";
if (document.all)
{
// responseData - 响应当前请求的Body文本
displayElement.innerText += "\r\n" + executor.get_responseData();
}
else
{
// Firefox
displayElement.textContent += "\r\n" + executor.get_responseData();
}
displayElement.innerHTML += "

";
}
else
{
// timedOut - 请求是否超时
if (executor.get_timedOut())
{
alert("超时");
}
// aborted - 请求是否被终止
else if (executor.get_aborted())
{
alert("请求被终止");
}
}
}




function ExecuteRequest()
{
// 创建WebRequest对象
var wRequest = new Sys.Net.WebRequest();

// url - 请求的url
wRequest.set_url("GetTarget.xml");

// 创建XMLHttpExecutor对象
var executor = new Sys.Net.XMLHttpExecutor();

// executor - 与当前WebRequest对象相关的executor
wRequest.set_executor(executor);

// executeRequest() - 执行请求
executor.executeRequest();




// executor - 与当前WebRequest对象相关的executor
var executor = wRequest.get_executor();

// started - 是否已经开始处理请求
alert("executor是否已经开始处理请求:" + executor.get_started())
}




// 通知ScriptManager这段脚本已经加载完毕
if (typeof(Sys) !== "undefined") Sys.Application.notifyScriptLoaded();
WebRequestManagerAndXMLHttpExecutor.aspx
<%@ Page Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="WebRequestManagerAndXMLHttpExecutor.aspx.cs"
Inherits="ClientScripting_SysNet_WebRequestManagerAndXMLHttpExecutor" Title="WebRequestManager和XMLHttpExecutor" %>











onclick="GetData()" value="GetData" />



onclick="ExecuteRequest()" value="ExecuteRequest" />













运行结果
1、单击“GetData”按钮
可能提示超时,也可能提示终止,也可能显示与“PostTarget.aspx”相关的结果




2、单击“ExecuteRequest”按钮
提示executor已经开始处理请求,显示与“GetTarget.xml”相关的结果

作者:webabcd

[源码下载]













































添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.