Отменить запрос XHR - PullRequest
       2

Отменить запрос XHR

2 голосов
/ 12 декабря 2011

У меня есть:

function send(){
  $.get("/site/send.php", function(data){
    alert(data);
  }
}

На сайте / send.php У меня есть:

sleep(1000)
echo "OK";

Далее у меня в файле js:

send();
$("#click").click(function(){
  $.get("/site/reset.php", function(data){
    alert(data);
  }
})

и в reset.php:

echo "RESET";

В этом примере у меня XHR до сна <1000. В Firebug я вижу это.У меня нет ответа и успехов в функции send (), пока sleep не будет <1000. Это нормально, но я бы хотел отменить этот запрос, если я использую .click (). </p>

Теперь у меня есть функция времениsend () и до тех пор, пока она не остановится (> 1000), тогда у меня нет функции запуска с .click ().Почему это не асинхронно?

Возможно ли это?Может быть, можно отменить все заявки на сайте?

Ответы [ 2 ]

5 голосов
/ 12 декабря 2011

Вам нужно сохранить ссылку на ваш объект XHR, чтобы прервать его.

Примерно так:

var myXhr = null;
$("#click").click(function(){
  myXhr = $.get("/site/reset.php", function(data){
    alert(data);
  });
})

А затем прервать:

if (myXhr) {
  myXhr.abort();
}

Хотя я действительно не уверен в синтаксисе.

Возможно, вы захотите взглянуть на некоторые аналогичные вопросы .

5 голосов
/ 12 декабря 2011

Каждый ваш запрос на самом деле является отдельным экземпляром или потоком.Вы не можете отменить один запрос, выдав другой.Что вы можете сделать, это отменить текущий запрос (ы) на стороне клиента.Прочитайте этот вопрос .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...