Результаты автозаполнения jQuery UI возвращаются не по порядку

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

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

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

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


person lschult2    schedule 04.05.2011    source источник


Ответы (1)


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

        var running = undefined;

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

        running = $.ajax({
            ... your ajax magic here
        });
person Ygor Cardoso    schedule 18.05.2012