我正在构建一个应用程序作为服务器客户端概念,其中服务器是一个asp.net应用程序。我想做的是
我可以知道原因,当点击浏览器后退按钮时,是否会触发页面加载事件或屏幕后面的进程是什么。如何让页面快速重定向。
我也浏览网页,发现为了避免缓存页面,我已经添加了所有页面和母版页,但没有使用它。它保持不变。
答案 0 :(得分:1)
就像你说的那样,你需要通过设置cache-control: no-cache
标题来确保没有缓存上一页,你可以在ASP.NET中执行以下操作:
Response.Cache.SetCacheability(HttpCacheability.NoCache);
答案 1 :(得分:0)
实际上,所有浏览器都难以进行浏览器缓存。即使你这样做,你甚至不能100%肯定它没有被缓存(浏览器不管你告诉他们什么都自己做事情,但这应该涵盖大多数基础):
Response.ExpiresAbsolute = DateTime.Now.AddDays(-1d);
Response.Expires = -1500;
Response.CacheControl = "no-cache";
Response.AppendHeader("Cache-Control", "no-cache"); //HTTP 1.1
Response.AppendHeader("Cache-Control", "private"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "no-store"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "must-revalidate"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "max-stale=0"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "post-check=0"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "pre-check=0"); // HTTP 1.1
Response.AppendHeader("Pragma", "no-cache"); // HTTP 1.1
Response.AppendHeader("Keep-Alive", "timeout=3, max=993"); // HTTP 1.1
Response.AppendHeader("Expires", "Mon, 26 Jul 1997 05:00:00 GMT"); // HTTP 1.1
Response.Cache.SetCacheability(HttpCacheability.NoCache);
现在也不认为这就够了。 Firefox喜欢使用Url进行缓存,因此如果您链接到某个页面,则可能需要通过在其末尾添加时间戳来更改URL。
但是,如果它不是导致问题的缓存,那么您可以执行一些服务器端逻辑。例如,如果会话在代码隐藏中不存在,则在后面的代码中重定向,这将在加载任何页面之前重定向。如果页面在此之后仍然加载,则肯定是浏览器缓存问题。