как уничтожить более старый запрос jsonp?

У меня есть междоменный длинный запрос опроса с помощью getJSON с обратным вызовом, который выглядит примерно так:

$.getJSON("http://long-polling.com/some.fcgi?jsoncallback=?"
    function(data){
          if(data.items[0].rval == 1) {
            // update data in page
          }
    });

Проблемой является запрос к долго опрашивающему сервису, мог бы требовать времени к возврату, и другой запрос getJSON мог бы быть выполнен тем временем и обновить страницу даже при том, что это - устаревший ответ.

Req1: h ** p://long-polling.com/some.fcgi в 10:00

Req2: h ** p://long-polling.com/some.fcgi? в 10:01

Req1 возвращает и обновляет данные на странице 10:02

Я хочу способ делать недействительным возврат из Req1, если Req2 был уже сделан.

Спасибо!

6
задан PetersenDidIt 4 May 2010 в 13:22
поделиться

2 ответа

Я не думаю, что это работает, поскольку getJSON использует метод JSONP, который на самом деле работает, динамически вставляя тег скрипта, который выполняет ваш браузер. Я не думаю, что есть способ остановить выполнение скрипта браузером ... есть ли?

7
ответ дан 8 December 2019 в 18:33
поделиться

Когда вы делаете запрос ajax, он возвращает объект XMLHttpRequest. Если вы хотите прервать вызов, вы можете вызвать для него метод .abort () .

var request = $.getJSON(. . . . . );
request.abort();
5
ответ дан 8 December 2019 в 18:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: