如何处理缓慢的Ajax请求/连接速度慢的人

时间:2015-04-29 14:15:36

标签: javascript jquery ajax

这是一个“假设”的情况。

让我说我有: 一个websocket,告诉我每隔10秒发一个像http://localhost/Whatever这样的网址的ajax。

http://localhost/Whatever上的ajax呼叫将需要45个借调来回复(针对该情况的电话号码)。

我想知道浏览器将如何反应?在我看来3个案例:

  1. (好的):浏览器非常聪明:他理解我们ajax 相同的url所以他不会在当前调用之前堆栈ajax调用 结束。
  2. 浏览器了解我们ajax相同的网址并在其上创建abort() Ajax 1st调用并启动一个新的(如果浏览器确实这样做,它 在我看来会是垃圾。)
  3. (最糟糕的情况):每次websocket询问时,浏览器都会在URL上发送一个ajax 他等待答案。而且,我想会有一个 parralel ajax请求限制的问题? (我不知道怎么回事 浏览器如果发生这种情况?)
  4. 那么,哪种情况会发生?为什么?

1 个答案:

答案 0 :(得分:1)

Imho,这个伪代码可能会帮助你。

var requestLock = false;

function pollFromSocket() {
  if (someCondition) {
    sendRequest();
  }
}

function sendRequest() {
  if (requestLock) {
    return;
  }

  requestLock = true;

  $.get('/whatever')
    .done(function(response) {
      // process response
    })
    .always(function() {
      requestLock = false;
    });
}