Tengo una aplicación donde los usuarios pueden cambiar un valor de alternar entre true
y false
usando un pequeño interruptor/botón y el cambio se envía automáticamente al servidor sin que el usuario presione explícitamente algo como "guardar".¿Se garantiza que las solicitudes AJAX subsiguientes se recibirán en orden?
Ahora, si el usuario presiona el interruptor de palanca dos veces en rápida sucesión, ¿es posible que el servidor reciba los paquetes desordenados y termine almacenando el valor incorrecto? Y por servidor me refiero a la lógica de la aplicación que se ejecuta en el servidor, no a la pila de red del sistema operativo.
Sé que los paquetes TCP están numerados de modo que el sistema operativo receptor los ordena antes de pasarlos a la aplicación, y HTTP se ejecuta sobre TCP. Sin embargo, la parte que me interesa es en qué circunstancias HTTP crea/no crea una nueva conexión TCP.
N.B. Estoy usando jQuery para enviar las solicitudes de AJAX y asumo que se garantiza que se envíen en el mismo orden que las llamadas a la biblioteca de jQuery. ¿Es esta suposición válida?
+1; La lógica más sencilla para dicho control de versiones podría ser '(new Date) .getTime()' –
+1 JavaScript tiene un único hilo, por lo tanto, jQuery enviará las solicitudes en orden, pero no hay garantía de cuándo las solicitudes llegarán al servidor. En la práctica, casi siempre lo harán, pero no escriben ninguna lógica para depender de ello. –
@DavidHedlund Watchout: Esto puede fallar cuando cambia la hora (cambio de hora explícito del usuario, sincronización del servidor horario). –