【发布时间】:2010-10-14 20:58:40
【问题描述】:
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 会这样操作—— 这背后一定有一些道理/好处?
谢谢你
【问题讨论】:
-
您确定所有涉及的 URL 都相同,甚至连字符大小写都相同?
-
ASP.NET 确实为不同的浏览器生成不同的标记。我不确定它是否会影响 。
-
>您确定所有涉及的 URL 都相同,甚至连字符大小写都相同?是的,因为我将 URL 从一个浏览器复制到另一个 >ASP.NET 确实为不同的浏览器生成了不同的标记......我不确定我明白你在说什么,但我在所有测试中都使用了 firefox