Muchas veces he visto barras de progreso en vivo que indican la cantidad de datos cargados desde aplicaciones web de gran cantidad de datos que notifican a los usuarios sobre el proceso de carga (% o barras de relleno) antes de que la página comience a mostrarse. ¿Cómo se puede implementar?
Creo que no hay una solución perfecta. Y ciertamente no una respuesta correcta. Depende principalmente de las capacidades de la API/Servidor. Me concentré en cómo obtener el progreso hacia la interfaz. Y allí veo tres tipos diferentes de transferencia de datos.
❌ Temporizador (peor solución) Puede usar un temporizador basado en el tiempo promedio de carga. No creo que tenga que explicar por qué esta no es una buena solución. Pero esto realmente no da un estado de carga correcto.
✔️ Sondeo Puede utilizar un sistema de sondeo para recuperar los datos. Cuando los datos aún no están listos, devuelve el progreso. Si los datos están listos, devuélvalos. Por ejemplo:
Step 1: GET the data from the REST-API This call returns an id linked to the request. Fe ID-1 Step 2: You poll each couple of (mili)seconds the status of the request, based on the ID. This call returns for example: { status: 20, data: [] } As soon as the status is 100, the data is provided✔️ Enchufes web En lugar de sondear, también puede usar enchufes para actualizar la interfaz con el estado correcto. El servidor publicará el estado hacia la interfaz. Para este enfoque, también necesitará un cierto tipo de identificación para asegurarse de que solo reciba su progreso.