Foros del Web » Programando para Internet » Javascript »

Problema de sincronizacion con ajax javascript

Estas en el tema de Problema de sincronizacion con ajax javascript en el foro de Javascript en Foros del Web. Hola a todos colegas. soy nuevo en lo de la web. tengo un problemita tengo un div principal en el cual agrego divs hijos o ...
  #1 (permalink)  
Antiguo 18/08/2012, 15:57
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Pregunta Problema de sincronizacion con ajax javascript

Hola a todos colegas.
soy nuevo en lo de la web.
tengo un problemita
tengo un div principal en el cual agrego divs hijos o divs coments segun los comentarios que se envien, o reciban

osea.
envio un comentario, entonces se agrega el div del coment al div principal
si tengo 5 comentarios entnces hay 5 comentarios en el div principal, bueno asi se entiende eso.

todo funciona bien, envio coments y recibo y todo bie, solo recibo los nuevos y los agrego en tiempo real.

el problema radica en que yo agregue una funcion extra en la cual cuando yo envió un coment entonces se agregue mi coment a mi panel automáticamente
(de esta forma $(cm).insertAfter('#coment'))
sin necesidad de ir cargar el coment que acabo de enviar a la base de datos
entonces yo para no cargar el coment mio de la base de datos hice esto

select* from tablausuario,tablacoments order by tablacoments.id desc limit ".$limite;

$limite es la diferencia del total de filas de la tablacoments menos el valor anterior de filas total del coment.
eso me hace que solo cargue lo nuevo, y si esta bien, el problema radica en que yo no quiero que cargue mi comentario, por que yo ya lo agregue previamente con esto $(cm).insertAfter('#coment').
y eso hace que la variable $limite cuente los valores que mostrara tomando en cuenta que no mostrara el mio. es por eso que la cambie asi select* from tablausuario,tablacoments where tablausuarios.id<>".$_SESSION['idusuario']." order by tablacoments.id desc limit ".$limite;
para ser mas claros
la base de datos muestra los comentarios nuevos, basado en la variable limite, si hay 3 comentarios nuevos, limite vale 3. entonces selecciona los 3 y los muestra
pero como yo pongo el filtro de que no quiero que muestre los de mi sesion, entonces toma en cuenta eso y cuenta 3 sin contar el mio, osea selecciona un cuarto comentario, no se si me explique.

talvez me digan para que quiero agregar el comentario de la siguiente forma
$(cm).insertAfter('#coment')
si es mejor seleccionarlo de la base de datos.
pues por estetica, ya que el archivo ajax hace peticion cada segundo, entonces si envio un dato durara un segundo en regresar-. es por eso que yo creo que se ve mejor agregarlo imediatamente en cuanto lo envio, y luego mostrar los coments nuevo a excepcion del mio para que no haya duplicados.

no se si me explique bien.

todo esto es para que funcione en tiempo real.
saludos...! de antemano gracias
  #2 (permalink)  
Antiguo 18/08/2012, 16:09
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: Problema de sincronizacion con ajax javascript

EDITO EL MENSAJE ME EQUIVOQUE Y NO HAYO COMO BORRARLO Y CREAR OTRO YO CREO QUE POR QUE COMENTE ALGO EXTRA MEJOR LEAN ESTE.


Hola a todos colegas.
soy nuevo en lo de la web.
tengo un problemita
tengo un div principal en el cual agrego divs hijos o divs coments segun los comentarios que se envien, o reciban

osea.
envio un comentario, entonces se agrega el div del coment al div principal
si tengo 5 comentarios entnces hay 5 comentarios en el div principal, bueno asi se entiende eso.

todo funciona bien, envio coments y recibo y todo bie, solo recibo los nuevos y los agrego en tiempo real. con esta consulta select* from tablausuario,tablacoments order by tablacoments.id desc limit ".$limite;

el problema radica en que yo agregue una funcion extra en la cual cuando yo envió un coment entonces se agregue mi coment a mi panel automáticamente
(de esta forma $(cm).insertAfter('#coment'))
sin necesidad de ir cargar el coment que acabo de enviar a la base de datos
entonces yo para no cargar el coment mio de la base de datos hice esto


select* from tablausuario,tablacoments where tablausuarios.id<>".$_SESSION['idusuario']." order by tablacoments.id desc limit ".$limite;

$limite es la diferencia del total de filas de la tablacoments menos el valor anterior de filas total del coment.
eso me hace que solo cargue lo nuevo, y si esta bien, el problema radica en que yo no quiero que cargue mi comentario, por que yo ya lo agregue previamente con esto $(cm).insertAfter('#coment').
y eso hace que la variable $limite cuente los valores que mostrara tomando en cuenta que no mostrara el mio. es por eso que la cambie asi select* from tablausuario,tablacoments where tablausuarios.id<>".$_SESSION['idusuario']." order by tablacoments.id desc limit ".$limite;
para ser mas claros
la base de datos muestra los comentarios nuevos, basado en la variable limite, si hay 3 comentarios nuevos, limite vale 3. entonces selecciona los 3 y los muestra
pero como yo pongo el filtro de que no quiero que muestre los de mi sesion, entonces toma en cuenta eso y cuenta 3 sin contar el mio, osea selecciona un cuarto comentario, no se si me explique.

talvez me digan para que quiero agregar el comentario de la siguiente forma
$(cm).insertAfter('#coment')
si es mejor seleccionarlo de la base de datos.
pues por estetica, ya que el archivo ajax hace peticion cada segundo, entonces si envio un dato durara un segundo en regresar-. es por eso que yo creo que se ve mejor agregarlo imediatamente en cuanto lo envio, y luego mostrar los coments nuevo a excepcion del mio para que no haya duplicados.

no se si me explique bien.

todo esto es para que funcione en tiempo real.
saludos...! de antemano gracias"

Última edición por minombreesmm; 18/08/2012 a las 16:42

Etiquetas: ajax
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 15:10.