这是面试问题之一
例如:
让我们说有一个MVC应用程序。 在View中我们编写了一个调用MVC控制器的ajax方法
$("#SubmitCompany").click(function(){
var jqxhr = $.post( "\Company\Save", function() {
alert( "success" );
})
.done(function() {
alert( "second success" );
})
.fail(function() {
alert( "error" );
})
jqxhr.always(function() {
alert( "second finished" );
});
});
在保存方法中,我们编写了一个处理数据并将其存储在数据库中的功能。我们还会回答一下它是成功还是失败。
所以问题是:
答案 0 :(得分:0)
在我看来,如果请求被发送并发送到服务器并且突然浏览器关闭,那么将对服务器进行任何更改,但是这里没有客户端,因此它什么都不做,并且不会输出。
另一个条件是,如果请求没有在服务器上进行,并且浏览器被关闭,那么它对两者都没有任何作用。
答案 1 :(得分:0)
无论客户端操作员(程序等)完全发送需求的时间长短,服务器都拥有它所需要的所有时间并完成需求并尝试发回反应。
确实,这种" pinging"行为经常被用于"脉冲" - 类似的程序,使管理保持温暖或执行间歇性维持。
答案 2 :(得分:0)
恕我直言,不同的语言有不同的方式来处理服务器上的客户端连接状态。要回答您的问题,这取决于请求进入服务器执行的程度。如果服务器具有执行请求所需的所有输入,那么它将继续这样做。
但是,如果有任何可靠的方法来检测客户端在执行过程中已中止,则可以使用服务器代码决定是继续还是中止进一步执行。我不是.NET专家,但是从answer开始,看起来您可以使用Response.IsClientConnected
来确定客户端浏览器是否中止请求并确定操作和输出的过程。
例如,在PHP中,维护连接状态。有4种可能的状态,您可以根据这些状态决定是否希望客户端断开连接以导致脚本中止。
即使没有远程浏览器接收输出,有时总是让脚本运行完成也很方便。但是,默认行为是在远程客户端断开连接时中止脚本。