Hay demasiados para nombrar.
Una de las más frecuentes es recibir actualizaciones activadas por el servidor. Debe sondear el servidor desde el cliente para ver si algo ha cambiado. Hay algunas abstracciones que puede utilizar para resolver este problema, pero en última instancia, la información debe ser solicitada por el navegador para recibirla.
Otro problema que se encuentra con frecuencia es la necesidad de serializar gráficos cíclicos para el consumo del cliente. En un solo espacio de memoria, los gráficos cíclicos se representan trivialmente y pueden ser muy ricos en información. Sin embargo, una vez que necesite enviarlos por cable, no hay una opción de alta fidelidad. Deberá separar sus estructuras y asignarles identificadores adicionales para que pueda reconstruir explícitamente un gráfico de objeto comprable en el cliente.
- ¿Existe una empresa de alojamiento que no solicite los datos de mi tarjeta de crédito?
- ¿Cuáles son algunos programas de fondo que puedo escribir usando JavaScript?
- ¿Qué opinas sobre elegir Java EE como backend?
- En la creación de una aplicación web, desarrollo front-end o back-end, ¿qué es lo primero?
- ¿Cómo combinar front-end con el lenguaje de programación de servicios de fondo
Luego están los problemas de las operaciones no idempotentes de doble toque. Dependiendo de la semántica de su aplicación, el backend podría crear la misma entidad dos veces en respuesta a dos solicitudes idénticas del cliente. Esto está relacionado con el problema anterior porque tiene que ver con la noción de identidad de objeto en múltiples espacios.
Para agregar a esto, la identidad de la entidad puede no ser decidible hasta que se inserte en una base de datos, por lo que debe esperar a que se complete esa operación antes de que el servidor pueda enviar la respuesta.
En general, es un problema de comunicación asincrónica entre diferentes programas con interacción con estado.
En una aplicación de escritorio tradicional, muchos de estos no son problemas en absoluto.