jQuery UI Autocompletar: ¿cómo iniciar un proceso asíncrono y salga de él antes de que finalice

StackOverflow https://stackoverflow.com/questions/4439953

Pregunta

Estoy usando jQuery UI de autocompletar para construir una interfaz de búsqueda.

he definido una función personalizada que devuelve los resultados de búsqueda y actualizaciones de forma automática como se pulsan las teclas sin embargo, a veces esta función personalizada no se completa antes de pulsar la tecla siguiente (es decir, su todavía el procesamiento de "Lavado" cuando ya he escrito "Washi" (en la forma de escribir "Washington").

Me gustaría cada llamada al evento autocompletar "fuente" para cancelar la función anterior (lavado) y comenzar la nueva función (OIM). Con la siguiente llamada de función (OIM) y la cancelación de la función (Washin) y por lo tanto a partir del.

¿Cómo es este tipo de cosas hace?

¿Fue útil?

Solución

debe ser capaz de hacer algo como esto:

var lastXhr;
$( "#myAutocomplete" ).autocomplete({
    source: function( request, response ) {
        if (lastXhr) lastXhr.abort();
        lastXhr = $.getJSON( "search.php", request, function( data, status, xhr ) {
            if ( xhr === lastXhr ) {
                response( data );
            }
        });
    }
});

las tiendas var lastXhr la solicitud actual xhr más. Si hay un juego y la función de fuente se llama entonces se aborta la solicitud lastXhr y hace una nueva. Cuando la petición ajax devoluciones si asegúrese de que coincide con el lastXhr, si no, no se llama a la función response().

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top