Как я могу отменить запрос в Джанго - PullRequest
1 голос
/ 05 апреля 2011

Я написал поиск на своем сайте, и теперь я пытаюсь выполнить его поиск каждый раз, когда начинаю печатать. Итак, теперь я отправляю много запросов, содержащих различный текст, для поиска с использованием AJAX один за другим, и каждый следующий запрос должен ждать, прежде чем предыдущий будет завершен. Очевидно, мне не нужно отвечать на старые запросы, но мне нужен только один ответ на последний запрос. Как убить очередь неактуальных запросов в Django?

Кто-нибудь знает ответ?

Ответы [ 2 ]

1 голос
/ 05 апреля 2011

Более простой способ сделать это - подождать немного перед отправкой запроса на сервер.После каждого ввода установите таймер, который останавливает предыдущий (setTimout), и отправляйте запрос только при соблюдении тайм-аута.

Если запрос уже выполнен и не вернулся, вы все равно можете убить его, как это предлагается в другом ответе.

Я не знаю, как остановить другие запросы, используя django - надеюсьэто даже невозможно, это будет поток безопасности, если запросы могут быть уничтожены другими.

1 голос
/ 05 апреля 2011

На стороне сервера, вероятно, слишком поздно отменять запросы, но вы можете игнорировать ответы на стороне клиента. Я бы предложил прервать ожидающий AJAX-запрос перед отправкой нового.

Вот как: Прервать запросы Ajax с использованием jQuery

...