我希望有人能够回答我一个关于网页刷新的基本问题。
我有一个dotnet webform,用户填写一些细节并单击提交。 网页的代码后台有大约20个函数需要执行。
现在假设当用户单击提交按钮时,网页正在执行第5个函数,同时用户刷新了他的浏览器;
已经正在处理的页面会发生什么? 页面是否会立即终止? 还是将其允许运行直到执行第20个函数? 或者正在运行的页面被销毁并创建并发送给客户端一个新页面?
感谢您的回答。
当浏览器向服务器发出请求后,页面开始被处理。即使用户取消或停止请求,服务器仍将继续处理请求。如果用户重新加载/刷新页面,则会执行另一个请求,该请求将与第一个请求并行执行。
即使是在PHP的情况下,服务器也不会主动检查用户是否中断了连接。服务器只有在尝试返回请求结果时才知道已被中断。
因特网是一个断开连接的环境。服务器不知道浏览器的任何信息。服务器知道的唯一事情就是收到了请求,并且必须填充该请求。
代码执行将继续到结尾。
我相信客户端的网页是在单线程中执行的。如果你的"onsubmit"调用了一系列的函数,这取决于你,但在某个时刻你可能会想要 提交() 表单。
换句话说,在你的特定情况下,所有的函数追踪将继续直到表单被发送。
另一方面,如果你按下"重新加载"按钮,执行就终止了。
所有函数都将被执行,即使您进行了刷新,您也可以进行测试。但在 .net 中,它提供了一个功能来检查客户端是否仍与服务器连接(对于您的第一次提交,这意味着服务器可以在任何时候检查客户端是否正在等待响应)