缓存页面 asp.net

缓存页面实现了什么东西?

页面是否缓存,确定了服务器返回数据到客户端的方式。这是asp.net的服务器处理方式。针对的是在服务器处理的代码。

页面启用缓存:页面中的所有处理全部完毕后,返回数据到客户端。

页面不启用缓存:页面中的数据立即返回给客户端,如果有代码处理,分多次返回数据。

返回的触发事件可以是Response.Write();

复制代码
 1 <%@ Page Language="C#" Buffer="false" %><!--buffer,设置页面缓存为否。-->
 2 
 3 
 4 <script runat="server">
 5     void Page_Load(Object sender,EventArgs eventArgs)
 6     {
 7         Response.Write("开始输出文字,没秒写一行。共5行");
 8         for (int i = 0; i < 5; i++)
 9         {
10             Response.Write(string.Format("第{0}行。", i + 1));
11             System.Threading.Thread.Sleep(1000);//休眠1秒
12         }
13     }
14 </script>
15 <html>
16 <head>
17     <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
18     <title></title>
19 </head>
20 <body></body>
21 </html>
View Code
复制代码

设置不缓存页面。当前页面会多次显示服务器返回的数据。并且页面一直是连接的。

把buffer的值设为true。页面启用缓存。整个页面需要等待5秒。最后一次性获取所有数据。

-----------------------------------------------------------------------------------------------------------------------------

对缓存的操作。

Response.Flush()

把在这个指令前的所有数据返回给客户端。

复制代码
 1 <%@ Page Language="C#" %><!--buffer,设置页面缓存为否。-->
 2 
 3 
 4 <script runat="server">
 5     void Page_Load(Object sender,EventArgs eventArgs)
 6     {
 7         Response.Write("开始输出文字,没秒写一行。共5行");
 8         for (int i = 0; i < 5; i++)
 9         {
10             Response.Write(string.Format("第{0}行。", i + 1));
11             System.Threading.Thread.Sleep(1000);//休眠1秒
12             if (i%2==0)
13             {
14                 Response.Flush();//偶数返回一次数据。
15             }
16         }
17     }
18 </script>
19 <html>
20 <head>
21     <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
22     <title></title>
23 </head>
24 <body></body>
25 </html>
View Code
复制代码

 

Response.End()

把这个指令前的所有数据返回。并放弃后续数据的发返回。

复制代码
 1 <%@ Page Language="C#" %><!--buffer,设置页面缓存为否。-->
 2 
 3 
 4 <script runat="server">
 5     void Page_Load(Object sender,EventArgs eventArgs)
 6     {
 7         Response.Write("开始输出文字,没秒写一行。共5行");
 8         for (int i = 0; i < 5; i++)
 9         {
10             Response.Write(string.Format("第{0}行。", i + 1));
11             System.Threading.Thread.Sleep(1000);//休眠1秒
12             if (i%2==0)
13             {
14                 Response.Flush();
15             }
16             if (i==3)
17             {
18                 Response.End();//放弃了第5个数据的输出。
19             }
20         }
21     }
22 </script>
23 <html>
24 <head>
25     <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
26     <title></title>
27 </head>
28 <body></body>
29 </html>
View Code
复制代码

 

Response.Clear()

 清除指令前的所有缓存。

复制代码
 1 <%@ Page Language="C#" %><!--buffer,设置页面缓存为否。-->
 2 
 3 
 4 <script runat="server">
 5     void Page_Load(Object sender,EventArgs eventArgs)
 6     {
 7         Response.Write("开始输出文字,没秒写一行。共5行");
 8         for (int i = 0; i < 5; i++)
 9         {
10             Response.Write(string.Format("第{0}行。", i + 1));
11             System.Threading.Thread.Sleep(1000);//休眠1秒
12             if (i==3)
13             {
14                 Response.Clear();//清除了缓存。只会输出最后一个数据。
15             }
16         }
17     }
18 </script>
19 <html>
20 <head>
21     <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
22     <title></title>
23 </head>
24 <body></body>
25 </html>
View Code
复制代码

 

posted @   snake1118  阅读(123)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
点击右上角即可分享
微信分享提示