刷新网页会发生什么?

时间:2009-10-27 15:12:05

标签: asp.net refresh webpage

我希望有人能回答我关于刷新网页的基本问题。

我有一个dotnet webform,用户填写一些详细信息并点击提交。网页背后的代码有大约20个要执行的功能。

现在假设,当用户点击提交按钮时,网页正在执行第五功能,同时用户刷新他的浏览器;

已处理的网页会发生什么? 页面会立即终止吗? 或者它会被允许运行直到它执行第20个功能? 或者是否会销毁运行的页面并创建新页面并将其发送给客户端?

感谢您的回答。

6 个答案:

答案 0 :(得分:15)

一旦从浏览器向服务器发出请求,就会处理该页面。即使用户取消或停止请求,服务器也会继续处理请求。如果用户重新加载/刷新页面,那么它将是与第一个请求并行执行的另一个请求。

即使在PHP的情况下,服务器也没有主动检查user has aborted连接是否正常。服务器只知道它在尝试返回请求结果时被中止。

互联网是一个断开连接的环境。服务器对浏览器一无所知。服务器唯一知道的是已经发出请求并且必须填写请求。

答案 1 :(得分:2)

当在浏览器上刷新页面时,浏览器会在服务器上调用页面及其组件的新副本(CSS,JS等等......如果没有缓存)。

如果页面是POST调用,浏览器将再次POST数据。

页面已完成加载:

完全加载后,应完成服务器端的执行(除非您执行其他进程,或运行不再向客户端发送数据的后台代码)。

Page正在加载中途:

当前页面的连接将立即断开 - 如果页面仍在加载。它取决于服务器是否继续运行或终止页面。例如,在PHP中,我们可以使用ignore_user_abort()来保持脚本运行,即使页面在加载中途终止也是如此。

如果您的服务器是ASP,并且您单击了ASP按钮,则即使用户中途刷新,该按钮的操作(方法)也将完全在服务器端完成。这就是ASP.NET框架的完成方式。

答案 2 :(得分:0)

简单地说,用户看到的页面会丢失,除非在会话中,他们无法再次提取。但服务器不知道用户已断开连接,因此应用程序将继续运行,除非应用程序上有会话/超时,即使会话未完成也会很奇怪。

希望这有帮助。

RE

答案 3 :(得分:0)

代码执行将持续到最后。

答案 4 :(得分:0)

我相信网页(当然在客户端)是在单线程中执行的。如果您的“onsubmit”调用了一系列函数,那取决于您,但在某些时候您(可能)想要提交()表单。

换句话说(在您的特定情况下),所有功能跟踪将继续,直到发送表单。

另一方面,如果按“重新加载”按钮,执行终止

答案 5 :(得分:0)

所有的func都会被执行,即使你已经刷新,你也可以做一个测试。但在.net中它提供了一个检查客户端是否仍与服务器连接的功能(对于您的第一次提交,意味着服务器可以在您提交后随时检查客户端是否在等待响应)