Asp.net 刷新网页时会发生什么情况?

Asp.net 刷新网页时会发生什么情况?,asp.net,refresh,webpage,Asp.net,Refresh,Webpage,我希望有人能回答我提出的一个关于网页刷新的基本问题 我有一个dotnetwebform,用户在其中填写一些详细信息并单击submit。网页的代码隐藏有大约20个功能要执行 现在假设,当用户单击submit按钮时,网页正在执行第5个功能,同时用户刷新其浏览器 已经处理的页面将发生什么情况? 页面会立即终止吗? 还是允许它运行到执行第20个函数? 或者运行的页面将被销毁,并创建一个新页面并发送给客户端 感谢您的回答。简单地说,用户看到的页面将丢失,除非在会话中,他们无法再次拿起它。但服务器不知道用户

我希望有人能回答我提出的一个关于网页刷新的基本问题

我有一个dotnetwebform,用户在其中填写一些详细信息并单击submit。网页的代码隐藏有大约20个功能要执行

现在假设,当用户单击submit按钮时,网页正在执行第5个功能,同时用户刷新其浏览器

已经处理的页面将发生什么情况? 页面会立即终止吗? 还是允许它运行到执行第20个函数? 或者运行的页面将被销毁,并创建一个新页面并发送给客户端


感谢您的回答。

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

希望这有帮助


RE

代码将继续执行到最后。

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

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


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

当在浏览器上刷新页面时,浏览器将调用服务器以获取页面及其组件(CSS、JS等,如果未缓存)的新副本

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

页面已完成加载:

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

页面正在加载到一半:

当前页面的连接将立即断开-如果页面仍在加载中。该页是继续运行还是终止取决于服务器。例如,在PHP中,我们可以忽略_user_abort()以保持脚本运行,即使页面在加载中途终止


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

所有函数都将执行,即使您进行了刷新,也可以进行测试。但在.net中,它提供了一个功能来检查客户端是否仍与服务器连接(对于您的第一次提交,意味着服务器可以在您提交后的任何时间检查客户端是否在等待响应)

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

即使在PHP的情况下,服务器也不会主动检查连接是否正确。服务器仅在尝试返回请求结果时才知道已中止


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

hmmm。。。是否愿意提供该索赔的参考?@Dani-不正确。至少对于PHP我知道。对于asp.net它知道,至少当我不小心在页面上点击刷新,而服务器被困在一个长的操作中,我看到它完成了所有的代码,然后才重新加载页面。伙计们-这与服务器端无关,除非客户端在完成页面之前向服务器发送XHR请求。即便如此,如果你点击“重新加载”,一个行为良好的浏览器也会重新加载。想想这意味着什么——如果不是这样的话——你在网上买东西,你点击“提交”——请求到达服务器并被处理,而他们会根据你点击的“刷新”或主页清除你的信用卡。。。事务将中止吗?(钱已经花光了,服务器正在“工作”生成你的recipt…)一旦一个页面被发送到客户端浏览器,服务器将与之无关,直到客户端希望做其他事情。当然,服务器可以延迟发送数据流的结尾来阻止客户端。。。但这是另一个故事。@jldupont-当页面加载时(页面内容-不是外部组件),服务器仍然与客户端有连接。@Mauris:是的,当页面加载时,服务器仍然与客户端连接。。。在这个问题中,用户按下了web表单上的提交按钮。服务器端代码正在运行。用户在浏览器上按“刷新”-服务器端代码(OnBuntOnClick())将运行此函数,直到结束。