缓存页面 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>
设置不缓存页面。当前页面会多次显示服务器返回的数据。并且页面一直是连接的。
把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>
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>
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>