Entonces, tengo una página web que carga una lista de contenido de un script del lado del servidor php, lo ordena en el lado del cliente y agrega la lista final a un div en la página web. Al cargar la página, presionar un botón abre la lista algo así como
searchRequest = $.ajax( { type: "GET", // blah blah blah async: true, success: function(data) { sortTheData(data) addTheDataToThePage(data) } });Después de algunas pruebas, descubrí que la solicitud de jquery ajax funcionaba de forma asíncrona como se suponía, pero la página seguía colgada durante la carga mientras ordenaba la lista.
Lo que quiero hacer es que las funciones de clasificación y adición en la función de éxito comiencen en ese punto, pero se ejecuten sin bloquear el resto de la página para que no se ejecute sin problemas (es decir, en su propio hilo, pero aún agregando sus resultados a la página en el final).
Intenté ejecutar ordenar y agregar partes en una función asíncrona, así como envolverlo en una devolución de promesa, pero la página aún parece bloquearse cada vez que llega a la etapa de clasificación.
¿Necesito usar algún tipo de Web Worker para hacer esto, o hay alguna forma de hacerlo en javascript puro?