Título: long polling ajax no esta funcionando bien Publicado por: geshiro en 25 Abril 2017, 01:24 am lo hace este script es que cuando cambio algo en la base de datos automaticamente se refleja en el sitio solo que cuando agrego un elemento a la base de datos cada ves tengo que recargar la pagina como pudiera hacer para solucionar esto? otra cosa en mi timestamp en la consola de google chrome parece asi http://localhost/storelte/notify/pusher?timestamp=1493076211 pending pero al agregar el nuevo elemento no cambia el timestamp porq no lo hace automatico tengo que recargar para verlo no se que estoy haciendo mal en el ajax ,
Código
Título: Re: long polling ajax no esta funcionando bien Publicado por: engel lex en 25 Abril 2017, 01:32 am el ajax cada cuanto tiempo se llama?
Título: Re: long polling ajax no esta funcionando bien Publicado por: geshiro en 25 Abril 2017, 01:36 am lo dejo abierto en espera de un cambio en la base de datos y en google chrome me lo deja asi
pusher?timestamp=1493077051 (pending) xhr jQuery-2.1.4.min.js:4 0 B Pending Título: Re: long polling ajax no esta funcionando bien Publicado por: engel lex en 25 Abril 2017, 01:43 am no veo el error, del todo, puedes colocar una captura de tu consola? para ver que peticiones hizo antes
Título: Re: long polling ajax no esta funcionando bien Publicado por: geshiro en 25 Abril 2017, 01:50 am asi se ve cuando queiro agregar un nuevo elemento queda igua si no recargo como arreglaria mi ajax https://drive.google.com/open?id=0B5jZAeoqf_UiVGJ5ZXk0UENucUE
Título: Re: long polling ajax no esta funcionando bien Publicado por: engel lex en 25 Abril 2017, 01:57 am el servidor te está dejando en visto XD
que back end tienes? un php normal? Título: Re: long polling ajax no esta funcionando bien Publicado por: geshiro en 25 Abril 2017, 01:59 am en backend tengo php con codeigniter, lo que pasa es que cuando inserto una notificacion desde mysql deberia ser vista en la web sin recargar ese es el problema q no lo esta haciendo porq tengo q recargar
Código
Título: Re: long polling ajax no esta funcionando bien Publicado por: engel lex en 25 Abril 2017, 02:17 am set_time_limit(0)
while(true) exit() sleep(1) que es eso geshiro!? eso solo se usa casi que para debug... (excepto time limit que se usa para largas data frame, y aquí no es el caso) lo unico que te altó fue error_reporting(0) no se para que tienes ese while ahí, para mi está pegado en ese while, cuantas veces se va a repetir ese get si nunca debería repetirse, si se manda data se mando y adiós! no es socket, es htttp Título: Re: long polling ajax no esta funcionando bien Publicado por: geshiro en 25 Abril 2017, 02:27 am set_time_limit(0) Limitamos el tiempo máximo de ejecución para que el sleep solo de 1s
while(true) un ciclo infinito que en ves que estar pidiendo request cada 3s o 5s lo hize infinito con un estado de pending exit() terminamos el ciclo infinito sleep(1) delays de 1s es lo mas cerca que pude hacer al websocket ya que short polling me iba a hacer request cada 3s o 5s para que lo hize long polling cuando se haga una alteracion a la base de datos , con un efecto similar al websocket pero es http Código
y este json es lo que me regresa el ciclo Título: Re: long polling ajax no esta funcionando bien Publicado por: engel lex en 25 Abril 2017, 02:37 am eeehm no... es http... ahí no hay socket... cada conexión cierra estado, cada script tiene su propia data estatica...
por eso se pega... a demás... aunque fuera socket, no estás dando salida a los datos... echo solo pasa la data a el buffer... y si te pones a vaciar buffer vas a crear caos... Título: Re: long polling ajax no esta funcionando bien Publicado por: geshiro en 25 Abril 2017, 02:39 am asi es es similar al websocket no es un socket , solo como arreglaria el ajax para que no tenga que recargar para cuando inserto algo a la base de datos porque si me muestra l a notificacion pero tengo que recargar esa parte como la solucionaria?
Título: Re: long polling ajax no esta funcionando bien Publicado por: geshiro en 25 Abril 2017, 02:42 am entonces en el ajax como arreglaria para que no tenga q recargar cada ves q se inserta algo en la db el settimeout()
Título: Re: long polling ajax no esta funcionando bien Publicado por: engel lex en 25 Abril 2017, 02:44 am no intentas hacer socket XD llamas cada vez a tu php... el php hace echo y naturalmente termina XD
en resumen quita el while (deja el contenido de sus cochetes) y el exit() a demás por la forma de funcionar php, si eso pudieras hacerlo, con unas 1000 personas llenas 4gb de ram o tal vez 8 XD Título: Re: long polling ajax no esta funcionando bien Publicado por: geshiro en 25 Abril 2017, 02:49 am emm como es algo pequeño solo notificaciones de client - server y como maximo tendre 2 conexiones haci que no hay problema pero solo ocupo que no tenga que recargar la notificacion para q aparezca
Título: Re: long polling ajax no esta funcionando bien Publicado por: engel lex en 25 Abril 2017, 02:53 am solo elimina la linea 6, 43, 47 y 48
tu jscript está bien (excepto por el timeout que como no tienes podría hacerte un DoS, pero como espera la respuesta y son solo 2 no hay problema), el problema es php que te deja en visto, es decir, el acepta el paquete y te dice que ya te va a responder, pero como el script nunca termina... -> (http://cdn3.ticbeat.com/src/uploads/2016/09/twitter-incopora-doble-check-azul-810x501.png) |