首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Dotnet频道
中国IT教育
Google
首页 ASP.NET  C#  XML/WebService ADO.NET VC.NET VB.NET .NET 资讯动态 专题 RSS订阅 讨论 下载
您现在的位置: 中国IT实验室 >> Dotnet >> ASP.NET >> 正文

当心异步刷新后的脚本文件加载

     重现问题
  
    我们现在编写一个示例来重现一个异步刷信的问题。
  
    首先,我们建立一个名为“ScriptHandler.ashx”的Generic Handler,它的作用是模拟一个脚本文件。可以看出,加载这么一个脚本文件是一个很耗时的操作。


  ScriptHandler.ashx
  <%@ WebHandler Language="C#" Class="ScriptHandler" %>
  
  using System;
  using System.Web;
  
  public class ScriptHandler : IHttpHandler
  {
   public void ProcessRequest (HttpContext context)
   {
   context.Response.ContentType = "text/javascript";
   System.Threading.Thread.Sleep(3000);
   context.Response.Write("Sys.Application.notifyScriptLoaded();");
   }
  
   // ...
  } 


    然后我们创建一个简单的页面,放置一个UpdatePanel和两个按钮。 Page

  <asp:UpdatePanel ID="UpdatePanel1" runat="server">
   <ContentTemplate>
   <%= DateTime.Now %><br />
   <asp:Button ID="Button1" runat="server" Text="Load Script File"
   OnClick="Button1_Click" />
   <asp:Button ID="Button2" runat="server" Text="Partial Rendering"
   OnClick="Button2_Click" />
   </ContentTemplate>
  </asp:UpdatePanel>  

    下面的代码是响应按钮Click事件的实现。当我们点击“Load Script File”按钮时,ScriptHandler.ashx会被作为脚本文件添加到页面上。而“Partial Rendering”则会发起一个需要等待很长时间的异步刷新。

  Event Handler
  protected void Button1_Click(object sender, EventArgs e)
  {
   ScriptManager.RegisterClientScriptInclude(this.Page, this.GetType(), "key",
   "ScriptHandler.ashx?m=" + new Random(DateTime.Now.Millisecond).Next());
  }
  
  protected void Button2_Click(object sender, EventArgs e)
  {
   Thread.Sleep(5000);
  } 


    您可以点击这里下载这个重现问题的示例并将它部署在您的机器上,您也可以点击这里察看这个页面。请一步一步跟着我来浏览这个页面,我会示范一下这个问题。
  
  打开页面,我们可以看到时间和两个按钮。
  点击“Load Script File” 按钮,并等待时间更新。
  在时间更新后,点击“Partial Rendering” 按钮。
    一般来说,最后一步之后大约5秒多钟,时间将会被跟新。但是现在您会发现,直到您重新点击某个按钮之后时间才会更新。事实上最后一步的任何操作,例如脚本加载,Hidden Field的注册都失败了,客户端生命周期的事件也不会触发。 
   

[1] [2] [3] 下一页

【责编:Peng】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·WEB程序开发--ASP.NET和PHP、JSP究竟学哪个?
 ·五步带你入门XML
 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 今日更新
 社区讨论
 博客论点
 频道精选
 Dotnet频道相关导航