Результаты автозаполнения пользовательского интерфейса jQuery возвращены не в порядке - PullRequest
1 голос
/ 04 мая 2011

Я столкнулся с проблемой, когда Ajax-запросы на поиск автозаполнения возвращаются не по порядку (то есть некоторые запросы кэшируются и возвращаются до более ранних запросов). Результаты автозаполнения показывают последний возвращенный результат, а не результат последнего введенного поискового запроса.

Считывание журналов автозаполнения изменений и исходного кода, похоже, что попытки отменить более старые запросы XHR находятся там, но они, похоже, не работают.

Я использую jQuery 1.5.1 и jQuery UI 1.8.10 вместе с jquery.ui.autocomplete.html.js

Должно ли автозаполнение обрабатывать эту ситуацию? Или я предполагаю управлять и прерывать предыдущие запросы Ajax в коде моего приложения?

1 Ответ

1 голос
/ 18 мая 2012

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

        var running = undefined;

        //on your autocomplete data source callback:
        if (running) running.abort(); //abort previous requests

        running = $.ajax({
            ... your ajax magic here
        });
...