Voy a nominar condiciones de carrera.
A algunas personas les gusta olvidar que existen condiciones de carrera en javascript, y de hecho, el modelo de concurrencia de javascript hace imposible una gran clase de carreras de datos. Bueno, me encontré con una condición de carrera bastante grave recientemente. Ya sea que lo planee o no, las solicitudes de ajax no son atómicas porque no son sincrónicas. El problema con el que me encontré fue que tenía algunos botones que activaban las solicitudes de ajax y movía al usuario al siguiente paso cuando la solicitud se realizaba correctamente. Pero durante ese tiempo mientras el servidor procesaba la solicitud, nada detendría al usuario de enviar una segunda solicitud, y la acción, desafortunadamente, no fue idempotente. Por lo tanto, el usuario puede hacer clic dos veces, el servidor responde dos veces y luego avanzar dos pasos, en lugar de uno :(. Lo arreglé refactorizando mi código para que el manejo del éxito sea idempotente.
- ¿Existe algún software o herramienta que pueda obtener las primeras 10 URL de una consulta de búsqueda de Google?
- ¿Cuál es el mejor proveedor de servicios de alojamiento web que tiene un buen servicio a precios razonables?
- Cómo filtrar todos los parámetros GET en mi sitio web
- ¿Cuál es la forma más rápida de aprender el desarrollo web front-end?
- ¿Por qué un desarrollador elegiría usar AngularJs sobre jQuery?