2011-10-29 59 views
1

我有2页在一个asp.net网站:为什么生命周期不运行

  • 第1页包含的对象。
  • 第2页包含有关其中一个对象的信息。

有些东西我不明白,我希望你们中的一些人能解释它。

我点击页面1上的一个对象并显示在页面2上,但是当我点击浏览器中的后退按钮时,oninit,oninit和evertything不会在页面1上调用。有人知道为什么吗?

回答

0

点击“返回”不会重新提交GET请求到服务器,它只是返回您的缓存副本。

1

当您单击浏览器上的“返回”按钮时,请求通常不会被重新提交。它实际上是上一页的缓存版本。

您可以添加标签的HTML告诉浏览器不缓存页:

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE"> 
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> 

这些标签应根据HTML规格来一起使用:

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.32

当在请求消息中存在no-cache指令时,如果我的应用程序应该向原始服务器转发请求,即使是 t有一个正在被请求的缓存副本。这个pragma 指令具有与no-cache cache-directive(参见 第14.9节)相同的语义,并且在此定义为与HTTP/1.0的 向后兼容。当无缓存 请求被发送到不知道与HTTP/1.1兼容的服务器时,客户端应该包括这两个头字段。

ASP.net有它下面看到自己的缓存控制:

MSDN页面缓存:http://msdn.microsoft.com/en-us/library/w9s3a17d.aspx

MSDN ASP.net缓存:http://msdn.microsoft.com/en-us/library/xsbfdd8c.aspx

相关问题