Estoy trabajando en un proyecto usando reactjs y java. Queremos crear una función de escritura anticipada que devolverá una lista de nombres de clientes coincidentes. Hay 10 mil clientes.

¿Cómo puedo implementar la funcionalidad? ¿Debo hacer esto en el lado del servidor o del navegador?

Cualquier ayuda es apreciada.

Realmente depende de cuáles sean sus prioridades.

TL / DR: hágalo en el servidor, a menos que realmente necesite respuestas inmediatas o planee realizar muchas de estas solicitudes.

La respuesta larga (er):

Si las respuestas inmediatas son importantes y está realizando muchas solicitudes, puede considerar almacenar en caché los nombres en el cliente e implementar el typeahead solo local. Sin duda será más rápido y más eficiente que alcanzar constantemente un punto final.

Si decide almacenar en caché los datos localmente, también debe mantener el estado almacenado en caché local sincronizado con el estado del servidor, lo que conlleva su propio conjunto de desafíos (por ejemplo, es posible que deba notificar al cliente cuando se crean, eliminan o cambian los nombres de los clientes). encuesta para actualizaciones regularmente).

Otro aspecto es si realmente desea almacenar cierta información completamente local. La información del cliente suena como algo que podría estar mejor ubicado en un servidor.

Lo que puede hacer es iniciar el tipeo solo una vez que se escriben 2-3 caracteres y luego devolver todos los nombres para esa selección. Suponiendo que su nombre de cliente promedio es de ~ 15 caracteres y obtiene un máximo de, por ejemplo, 200-300 nombres de clientes, entonces su respuesta sin comprimir debe ser inferior a 5 KB. Debería ser manejable. Esto también tiene el beneficio adicional de mantener su función de filtro de escritura anticipada local muy rápido (lo que podría ser importante si desea admitir dispositivos móviles).