Jquery 在中止前一个ajax请求后,我可以立即启动新的ajax请求吗?
我有一个web应用程序,每个连接都会发生HTTPs握手,我决心找出原因。HTTP keep alive正在工作,因此它是另一种强制请求在不应该启动新HTTPs握手时启动新HTTPs握手的方式 我有这样的东西(伪代码): 请求对象是jQuery的ajax方法返回的XMLHttpRequest。每次启动请求时,我都会中止上一个请求 我的问题是,这是否会迫使新请求启动HTTP握手,因为旧请求尚未完成。这些要求是定期邮寄的。在启动新请求之前,是否需要显式等待about()完成,以便利用HTTP保持活动状态Jquery 在中止前一个ajax请求后,我可以立即启动新的ajax请求吗?,jquery,ajax,Jquery,Ajax,我有一个web应用程序,每个连接都会发生HTTPs握手,我决心找出原因。HTTP keep alive正在工作,因此它是另一种强制请求在不应该启动新HTTPs握手时启动新HTTPs握手的方式 我有这样的东西(伪代码): 请求对象是jQuery的ajax方法返回的XMLHttpRequest。每次启动请求时,我都会中止上一个请求 我的问题是,这是否会迫使新请求启动HTTP握手,因为旧请求尚未完成。这些要求是定期邮寄的。在启动新请求之前,是否需要显式等待about()完成,以便利用HTTP保持活动状
对于我中止的每个请求,我都会在$.ajax()的错误回调中得到一个调用。只有在错误处理程序中得到回调后,我才需要启动新请求吗?在$.ajax中使用complete或error 完成: 错误:
可能您需要使用$.when()jQuery.always()“添加在解析或拒绝延迟对象时调用的处理程序”请参阅以获取更多信息。您能否解释此代码段如何解决OP遇到的问题?看起来您只是在处理一个成功请求的事件,这肯定不是这个问题所涉及的。
startNewRequest() {
if (oldRequest)
oldRequest.abort(); // abort old request
oldRequest = $.ajax(); // start new request
}
$.ajax({
url : RequestUrl,
complete : function(){
// Do something when request complete
}
});
$.ajax({
url : RequestUrl,
error: function(){
// Do something when an error occurred when the request is done
}
});
$.ajax({
url : yoururl,
success : function(){
// Do whatever
// oldRequest = $.ajax();
}
});