缓存页面 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
原文地址:https://www.cnblogs.com/snake1118/p/13668102.html