Buenas tardes...
ante todo que sepáis que soy un novato en esto de PHP y aplicaciones servidor, pero me he metido en este mundo para darle salida a una idea en la que llevo trabajando hace mucho... es una aplicación de escritorio que tira de una base de datos para mostrar los resultados de las consultas del cliente.
Claro, el mundo del PC sobre mesa se ha quedado pequeño y quiero llevar esta aplicación al web con su base de datos, para ampliar horizontes.
Pero sentado pensando cómo diseñar el esqueleto de esta idea, se me plantean serias dudas. Ahora mismo la que me trae de calle es el cargar listas desde los resultados de una consulta a la base de datos.
Hasta ahora era simple, como supongo que será con PHP, pero el tema es que de todo lo que he leído, algo que le falta a PHP y de lo que he tirado mucho por su gran utilidad, es el trabajo con hilos o tareas en segundo plano.
Vereis... la aplicación de ecritorio iba llenando (o mejor actualizando su contenido) según el usuario iba introduciendo caracteres y mostraba en la lista todo aquello que estaba contenido en el campo de búsqueda de la base de datos. Es decir, si yo había tecleado "ar", aparecía en la lista "ARrmado,desARmado, consultAR, ...". No sé si me explico. Pero claro lo hacía en un hilo aparte porque para cargar la lista tenía que hacer un bucle al resultado de la base de datos y si los resultados eran muchos y la tarea tardaba mucho no podía interactuar con la aplicación para, por ejemplo, seguir escribiendo la palabra a buscar (en cuanto detectaba la introducción de un nuevo caracter detenía el hilo creado e iniciaba otro nuevo con la nueva cadena).
Claro, mi base de datos tiene actualmente más de 3200 registros y creciendo de forma que las consultas pueden tranquilamente devolver cientos de resultados.
Pues ahí mi pregunta... yo lanzo la consulta a MySQL, obtengo el resultado e inicio el bucle para llenar la lista... ¿Cómo hago para hacerlo en segundo plano o hay alguna forma de que mientras recorro el bucle no se pare o ralentice demasiado la carga de la página?
Repito que soy nuevo, muy nuevo en esto, por lo que espero seáis indulgentes si lo que pregunto es una tontería.
Un saludo y gracias por anticipado.