protected void Page_Load(object sender, EventArgs e)
{Label1.Text = DateTime.Now.ToString();}如果在我编译这个新创建的应用程序后,浏览器B1第一个请求Cache.aspx,那么在接收到的页面上显示的时间是10.16:20。如果在10秒后,我刷新B1的Cache.aspx(通过单击按钮来引起回发),则时间10.16.30将显示,并且在所有后续回发中,10.16.30将始终显示(直到1小时过去)。如果在B1第一次请求Cache.aspx的几分钟后,浏览器B2也请求相同的页面,那么在第一次收到页面时,B2的Cache.aspx将显示时间10.16.20,而在所有后续B2的回发中,将显示10.16:30的时间。
A)所以看起来Asp.net生成了两个缓存版本的Cache.aspx (因此代码被执行两次),一个缓存页面被提供给第一次请求Cache.aspx的浏览器,第二个缓存页面被提供给只刷新其Cache.aspx的浏览器?
B)因为我的书从来没有提到过这样的行为,我想知道你是得到了同样的行为,还是我的网络环境又是“独特的”?
C)创建同一页面的两个副本(因此执行代码两次)似乎是浪费时间,那么为什么Asp.Net要这样操作--这背后一定有一些道理/好处?
谢谢
发布于 2009-03-22 22:15:20
一个完整的猜测,但假设缓存是由整个请求(查询字符串args等)隔离的……即使"none“关闭键/值对,"GET”仍然被简单地算作不同于“POST”?
尝试使用简单的链接(<a href...>等),而不是ASP.NET按钮。
发布于 2009-04-08 09:35:55
如果我尝试if (ispostback) begin response.cache.setcachebility(nocache) end
然后,每次单击按钮都会更新标签。
https://stackoverflow.com/questions/671669
复制相似问题