精彩专题推荐:建站之入门课 建站之必修课 建站之关键课 网站价值所在 流量提高专题 css+div 标准 个人网站打造全过程

ASP.NET 2.0页面性能的考虑

来源:网络 时间:07-11-12 点击: 点击这里收藏本文

  第二中就是注册异步任务(Register Asynchronous Task).RegisterAsyncTask比AddOnPreRenderCompleteAsync具有更大的灵活性和更多的优势。它可以允许你声明一个超时参数,同样可以声明在@Page中如:AsyncTimeout="5",以秒为单位,但要注意的是这里声明不是每个异步处理过程的超时而是整个页面的处理时间超时。同样.net framework 2.0还为注册任务引入了新的MethodAsync,MethodAsync就是为了方便处理多个异步过程的。例如:

<%@ Page Async="true" Language="C#" %>
asp:Content ID="Content" ContentPlaceHolderID="Main" Runat="server">
asp:Label ID="Output" Runat="server"></asp:Label>
</asp:Content>

public partial class AsyncPageTask : System.Web.UI.Page
{
 private WebRequest m_Request;

 protected void Page_Load(object sender, EventArgs e)
 {
  PageAsyncTask task = new PageAsyncTask(
   new BeginEventHandler(BeginAsyncOperation),
   new EndEventHandler(EndAsyncOperation),
   new EndEventHandler(TimeoutAsyncOperation),
   null
  );

  RegisterAsyncTask(task);
 }

 IAsyncResult BeginAsyncOperation(object sender, EventArgs e, AsyncCallback cb, object state)
 {
  m_Request= WebRequest.Create("http://www.dofor.cn");
  return m_Request.BeginGetResponse(cb, state);
 }

 void EndAsyncOperation(IAsyncResult ar)
 {
  string text;
  using (WebResponse response = m_Request.EndGetResponse(ar))
  {
   using (StreamReader reader = new StreamReader(response.GetResponseStream()))
   {
    text = reader.ReadToEnd();
   }
  }

  Regex regex = new Regex("hrefs*=s*"([^"]*)"", RegexOptions.IgnoreCase);
  MatchCollection matches = regex.Matches(text);

  StringBuilder builder = new StringBuilder(1024);
  foreach (Match match in matches)
  
  Output.Text = builder.ToString();
 }

 void TimeoutAsyncOperation(IAsyncResult ar)
 {
  Output.Text = "当前数据不可用";
 }
}

  总之合理的利用asp.net 2.0的异步处理,就可以极大的改善您大吞吐量高并发网站页面的性能。
9 7 3 1 2 4 8 :

用户评论

广而告之