Foros del Web » Programando para Internet » Javascript » Frameworks JS »

siocrono/asincrono a la vez?

Estas en el tema de siocrono/asincrono a la vez? en el foro de Frameworks JS en Foros del Web. Hola: Siento cansarlos a cada rato con mis preguntas. Miren tengo un form q mediante ajax me verifica la existencia del nombre de usuario, mediante ...
  #1 (permalink)  
Antiguo 01/05/2008, 10:33
Avatar de killerangel  
Fecha de Ingreso: septiembre-2007
Ubicación: Un punto en el espacio
Mensajes: 592
Antigüedad: 17 años, 2 meses
Puntos: 10
Pregunta siocrono/asincrono a la vez?

Hola:
Siento cansarlos a cada rato con mis preguntas. Miren tengo un form q mediante ajax me verifica la existencia del nombre de usuario, mediante otro ajax me pone codigos captcha y guarda el codigo en variable de sesion y ahora le pongo los mensajes de validacion de formulario para datos y demas...

Cuando envio el formulario tengo q validar nuevamente si el nombre de usuario existe y si el codigo sigue siendo correcto, ademas de los otros campos.... Como hago esto? osea si el script de validacion de usuario y verificacion de codigo son asincronos y sus respuestas pueden ser temporalmente independientes.. como los evaluo? acaso sincronicamente?

grax.
  #2 (permalink)  
Antiguo 01/05/2008, 11:05
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Re: siocrono/asincrono a la vez?

Hola killerangel,

La idea en este caso es que manejes un "form state" es decir una bandera que te indique si tu formulario ya esta listo, validado y preparado para ser enviado, así puedes primero validar unas cosas, y ya que veas que el formulario es "valido" haces el envío vía AJAX para registrar.

Saludos.
  #3 (permalink)  
Antiguo 01/05/2008, 11:47
Avatar de killerangel  
Fecha de Ingreso: septiembre-2007
Ubicación: Un punto en el espacio
Mensajes: 592
Antigüedad: 17 años, 2 meses
Puntos: 10
Re: siocrono/asincrono a la vez?

hola:

Gracias por la respuesta. Voy a investigar ahorita mismo.
  #4 (permalink)  
Antiguo 01/05/2008, 17:00
Avatar de killerangel  
Fecha de Ingreso: septiembre-2007
Ubicación: Un punto en el espacio
Mensajes: 592
Antigüedad: 17 años, 2 meses
Puntos: 10
Re: siocrono/asincrono a la vez?

Hola GatorV.

Denuevo por acá... estube leyendo algo pero la verdad no encontré mucho del tema, al menos nada queme sirviera.

Tal vez podrias hecharme una mano y pasarme un linck o algo por q la verdad en eso de form state estoy perdido y no puedo avanzar mas si no hago que me falta. gracias!!

Ha me olvidava... estube pensando que lo que podría hacer es una funcion que evalua por tiempos el formulario, es decir, que al llamar a la parte de validacion de usuario, tenga q pasar 3 segundos para poder hacer la siguiente validacion y lo mismo para la parte del codigo de verificacion- digo 3 segundos xq en una base de datos muy grande demoraria la busqueda ese tiempo (o es menos??? cuanto demoraria una busqueda asi?) pero creo q este procedimiento no me ayuda mucho y la espera de los usuarios podria ser una molestia para ellos.

Gracias...

Última edición por killerangel; 01/05/2008 a las 17:07
  #5 (permalink)  
Antiguo 02/05/2008, 09:14
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Re: siocrono/asincrono a la vez?

Hola killerangel,

Lo que te digo es algo así:
Código:
<script type="text/javascript">
var formaValida = false;
function sendAjaxForm() {
       if( !formaValida ) {
                alert( "La forma no esta validada todavía, no se puede enviar" );
                return;
       }
        
        // Envias la forma por AJAX normal
}
</script>
Es decir, ejecutas tus validaciones y hasta que tu explicitamente cambies en una función:
Código:
formaValida = true;
No se podrá enviar el formulario completo.

Saludos.
  #6 (permalink)  
Antiguo 03/05/2008, 21:50
Avatar de killerangel  
Fecha de Ingreso: septiembre-2007
Ubicación: Un punto en el espacio
Mensajes: 592
Antigüedad: 17 años, 2 meses
Puntos: 10
Re: siocrono/asincrono a la vez?

Hola estimado GatorV.

Pues mira que justamente esto estube haciendo para validar campos de texto, options, etc... ahora voy a ver la aplicacion de este metodo para la validacion de envios al servidor y comprovacion de variables de sesion.

Por lo pronto estare viendo que problemas pueden presentarse y espero me permitas molestarte nuevamente con alguna duda que se me presente.

Por lo pronto espero poder hacer la banderas necesarias para poder hacer toda la validacion.

Gracias por tu apoyo.
  #7 (permalink)  
Antiguo 04/05/2008, 09:02
Avatar de killerangel  
Fecha de Ingreso: septiembre-2007
Ubicación: Un punto en el espacio
Mensajes: 592
Antigüedad: 17 años, 2 meses
Puntos: 10
Re: siocrono/asincrono a la vez?

Hola otra vez.

Pude solucionar mi problema....

Lo que hago es llamar primero a la funcion queme valida los campos del formulario que ha introducido el usuario, una vez que termina todo esto llamo a la funcion de validacion de disponibilidad de nombre de usuario. Dentro de la misma cuando ya arroja el resultado llamo a otra funcion (la del captcha) para ver si el codigo introducido es correcto.

mantengo siempre 2 variables globales:

Una para ver si deseo validar solo el formulario o no, esto me servira para cuando verifique el nombre de usuario codigo de seguridad por separado.
Y la otra para controlar los errores producidos en la validacion en cualquier parte de toda la funcion asiganandole "false" y verificando al final de todas las validaciones si la variable es true (como su decalracion inicial) yenviar el formulario o false (si detecto erro en alguna parte) y cancelar el envio mostrando un mensaje de aviso.

Creo que esto no es muy deslumbrante sino obvio pero tube que pensar un pokito para poder unir las funciones que encontre por separado de nombres de usuario, codigos y otros campos del formulario.

Como dijiste una vez, estimado GatorV, es mejor hacer la validacion de fomulario de acuerdo a tus necesidades y ver la mejor forma de como adaptar lo que la red te ofrece.

Creo que el tema esta completo y se puede cerrar.

GRACIAS!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:47.