科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道UpdatePanel与ASP.NET Page的缓存

UpdatePanel与ASP.NET Page的缓存

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

     UpdatePanel的功能大家一定都非常熟悉了。无论是官方还是社区里热心推广ASP.NET AJAX的朋友,都会对于UpdatePanel的使用进行大量说明与展示。但是在这些简单的的示例似乎都遗漏了一个非常重要的问题。

作者:中国IT实验室 来源:中国IT实验室 2007年10月2日

关键字: updatepanel 编程

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共2页)

  

  UpdatePanel的功能大家一定都非常熟悉了。无论是官方还是社区里热心推广ASP.NET AJAX的朋友,都会对于UpdatePanel的使用进行大量说明与展示。但是在这些简单的的示例似乎都遗漏了一个非常重要的问题,这个问题会直接导致UpdatePanel无法正确使用。

  这个问题就是ASP.NET Page的缓存。

  ASP.NET Page是个非常强大的模型,缓存是它的重要特性。一个成熟的ASP.NET应用程序几乎都会使用缓存,它能够显著得提高性能,减少服务器端生成页面或者控件内容的消耗。不过现在出现了UpdatePanel这个“神奇”的控件,如果使用缓存不当,就会让我们的应用程序出现错误。

 

重现问题

  我们还是来编写一个使用UpdatePanel的简单示例,如下:

CachedPage.aspx

<%@ Page Language="C#" AutoEventWireup="true" %> <%@ OutputCache Duration="100" VaryByParam="None" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Cached Page</title> </head> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server" /> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <%= DateTime.Now.ToString() %> <asp:Button ID="Button1" runat="server" Text="Async PostBack" /> </ContentTemplate> </asp:UpdatePanel>
<asp:Button ID="Button2" runat="server" Text="PostBack" /> </form> </body> </html>

 

  我们打开页面,依次做一下操作,并察看页面上显示的时间。

  1. 多次刷新页面,时间不会改变。
  2. 多次点击Async PostBack按钮,页面部分刷新,时间每次都会改变。
  3. 多次点击PostBack按钮,页面完全刷新,时间只会更新一次,然后时间保持不变。
  4. 点击Async PostBack按钮,发生错误。

  直到等待时间超过100秒(Cache过期),点击Async PostBack才工作正常,直到用户再次点击过PostBack按钮。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章