2011-08-23 197 views
1

我们有一个c#应用程序,使用F5刷新浏览器(IE)或单击URL并按下Enter键时会有不同的行为。有没有办法确定页面的刷新方式?确定如何刷新IE浏览器

+0

你的意思是你在应用程序中有一个WebBrowser控件,或者是什么情况? – Sven

+0

是这个ASP.NET WebForms? –

+0

这是一个使用会话变量的Asp.Net webforms应用程序。由于某些未知原因,因为我没有编写应用程序,所以会话变量有时会丢失。当您在URL行中按F5或Enter时,行为会有所不同,因此我想确定使用了哪种刷新方法。 – Guy

回答

0

如果您在ASP.NET web表单中,请检查Page_Load中的IsPostBack成员以查看您是第一次(url输入)还是第二次或更多(F5)加载页面。

+0

对于F5刷新,“IsPostback”不会成立,只有当页面由于发布表单而被加载时才会发生。 – Sven

0

您可以使用引用,看看网页是由其他页面提及或broswer

+0

浏览器是否认为这两种情况(F5或URL上的Enter)? – Guy

0

我不相信有一个直接的,简单的方法来测试这种打开。点击“开始”并点击F5的主要区别在于“开始”将始终执行HTTP GET,而F5将重复上一个HTTP请求,该HTTP请求可能是HTTP GET,也可能是HTTP POST。

这可能以下面的方式表现出来 - 你可能会看到一个按钮被点击两次(因为你点击了它,然后在页面重新加载后点击F5)。

说了这一切,考虑:

  • 如果您在使用基于“走出去”与F5行为的问题,你几乎可以肯定做错了什么,或在应用程序“非法”。
  • 试图解释用户在浏览器中做什么的确切细节是错误的方法; HTTP协议描述浏览器如何与您的服务器进行交互,试图找出黑盒子背后的问题。您需要设计您的应用程序,以便它对于常见的HTTP场景“表现良好”,比如这样。
+0

关于刷新类型之间的区别还有更多技术细节:http://blogs.msdn.com/b/ieinternals/archive/2010/07/08/technical-information-about-conditional-http-requests-and -the-refresh-button.aspx – EricLaw

+0

@EricLaw - 感谢您的信息,我意识到我在那里简化了很多:) –