我可以在中止前一个请求后立即启动新的ajax请求吗?

时间:2014-04-07 08:55:43

标签: jquery ajax

我有一个Web应用程序,每次连接都会进行HTTP握手,我决定找出原因。 HTTP keep-alive正在运行,因此它会强制请求在不应该启动新的HTTPs握手时使用其他东西。

我有类似的东西(伪代码):

   startNewRequest() {
     if (oldRequest)
        oldRequest.abort(); // abort old request
     oldRequest = $.ajax(); // start new request
   }

请求对象是jQuery的ajax方法返回的XMLHttpRequest。每当我开始请求时,我都会中止以前的请求。

我的问题是,这是否会强制新请求启动HTTP握手,因为旧请求尚未完成。请求是常规POST。在开始新请求之前,是否需要显式等待about()完成才能利用HTTP保持活动状态?

对于我中止的每个请求,我都会在$ .ajax()的错误回调中接到一个调用。只有在错误处理程序中收到回调后才需要启动新请求吗?

2 个答案:

答案 0 :(得分:1)

在$ .ajax中使用完整或错误

完整:

$.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
   }
});

答案 1 :(得分:0)

$.ajax({
   url : yoururl,
   success : function(){
       // Do whatever
       // oldRequest = $.ajax();
   }
});