当前位置:  开发笔记 > 编程语言 > 正文

处理缓存和浏览器后退按钮的最佳方法是什么?

如何解决《处理缓存和浏览器后退按钮的最佳方法是什么?》经验,为你挑选了2个好方法。

处理用户返回到在asp.net应用程序中缓存项目的页面的最佳方法是什么?有没有一种很好的方法来捕获后退按钮(事件?)并以这种方式处理缓存?



1> travis..:

您可以尝试使用HttpResponse.Cache属性,如果这将有所帮助:

Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetValidUntilExpires(false);
Response.Cache.VaryByParams["Category"] = true;

if (Response.Cache.VaryByParams["Category"])
{
   //...
}

或者可以使用HttpResponse.CacheControl完全阻止页面的缓存,但是它已被弃用,而不是上面的Cache属性:

Response.CacheControl = "No-Cache";

编辑:或者你真的可以疯了,手工完成:

Response.ClearHeaders();
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 



2> Rob Cooper..:

据我所知(或至少已阅读),最好不要回应用户事件,而是想"在页面中"..

构建你的应用程序,因此它不关心是否按下后退按钮..它只会处理它.从开发的角度来看,这可能意味着一些额外的工作,但整体上将使应用程序更加健壮. .

即如果步骤3执行一些数据chages,然后用户单击返回(到步骤2)并再次单击下一步,然后应用程序检查是否已进行更改..或者理想情况下,它不会进行任何更改,直到用户最后单击"确定".这样,所有更改都会被存储,您可以根据以前输入的值在每次加载时重新填充表单.

我希望这是有道理的 :)

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有