我在asp.net网站上有2页:
有一些我不明白的东西,我希望你们中的一些人可以解释它。
我点击第1页上的一个对象,它显示在第2页,但是当我点击浏览器中的后退按钮时,onpreinit,oninit和evertything不会在第1页上调用。有人知道为什么吗?
答案 0 :(得分: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指令时, 应用程序应该甚至将请求转发到源服务器 如果它有一个被请求的缓存副本。这个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
答案 1 :(得分:0)
点击“返回”不会重新提交GET请求到服务器,它只是返回您的缓存副本。