Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 在浏览器中使用“后退”按钮时,如何控制重新加载?_Asp.net_Browser - Fatal编程技术网

Asp.net 在浏览器中使用“后退”按钮时,如何控制重新加载?

Asp.net 在浏览器中使用“后退”按钮时,如何控制重新加载?,asp.net,browser,Asp.net,Browser,我有一个asp.NET应用程序,它的主页相当繁重。除了在同一页面上的操作外,此主页的内容很少更改 当用户按下浏览器中的“后退”按钮时,如何让浏览器从缓存中检索页面,而不是每次都联系服务器,迫使服务器再次呈现页面 谢谢,乔纳斯。简短的回答是:你不能 我认为你能做的最接近的事情就是在你的网页中包括一些内容,特别是与缓存和过期相关的内容,例如: <META HTTP-EQUIV="EXPIRES" CONTENT=" [some date/time in the future] ">

我有一个asp.NET应用程序,它的主页相当繁重。除了在同一页面上的操作外,此主页的内容很少更改

当用户按下浏览器中的“后退”按钮时,如何让浏览器从缓存中检索页面,而不是每次都联系服务器,迫使服务器再次呈现页面


谢谢,乔纳斯。简短的回答是:你不能

我认为你能做的最接近的事情就是在你的网页中包括一些内容,特别是与缓存和过期相关的内容,例如:

<META HTTP-EQUIV="EXPIRES" CONTENT=" [some date/time in the future] ">


一旦您将这些内容包含在发送到客户端浏览器的呈现网页中,您只需希望用户单击“后退”按钮后,浏览器将显示页面的“缓存”版本,而不是引发对web服务器的另一个请求/响应周期,从而导致重新请求并重新呈现您的网页。不过,您将无法控制这一点,这完全取决于浏览器希望如何处理它。不过,我相信大多数现代浏览器都会重新请求该页面

防止重新呈现ASP.NET页面的另一种方法是使用

ASP.NET网页中的指令,如下所示:

<%@ OutputCache Duration="600" VaryByParam="None" %>

最基本的情况是,@OutputCache控件将把呈现的ASP.NET页面缓存指定的秒数(上例中为600秒),以便后续对该页面的请求将导致ASP.NET运行时向用户提供已呈现的页面版本,而不是重新处理和重新呈现整个页面。但请注意,这不是特定于用户的

有关页面输出缓存的更多信息(这可能是最接近您所追求的内容):



请在此处的搜索框中键入“后退按钮”,您将找到大约20个答案。因此,只要URL中包含区分页面的所有参数,使用OutputCache指令就可以了。我会试试看,谢谢:)@Joda-不一定要在URL中。如果它是一个“GET”请求,它将通过querystring出现在URL中,然而,@OutputCache指令上的“VaryByParam”属性也适用于“POST”请求。您还可以使用“甜甜圈缓存”仅缓存ASP.NET网页的一部分。请看这里:遗憾的是,如果不对代码进行实质性更改,它不允许我解决问题-我需要区分生成页面的大部分内容都保存在会话中。但是,它回答了我的问题,因此我感谢你:)
<%@ OutputCache Duration="600" VaryByParam="None" %>