频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

UpdatePanel与ASP.NET Page的缓存

来源: 作者: 出处:巧巧读书 2007-04-11 进入讨论组
下一页 1 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按钮。

查看 http://www.qqread.com/aspdotnet/h308490.html 更多文章 更多内容请看.NET移动与嵌入式技术.NET开发手册ASP.NET教程专题,或进入讨论组讨论。
下一页 1 2 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章