Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

Acelerar llamadas Ajax en wordpress

Estas en el tema de Acelerar llamadas Ajax en wordpress en el foro de WordPress en Foros del Web. Hola a todos! Tengo una duda relacionada con Ajax en wordpress...sé que la llamada a ajax hay que hacerla al ajax-admin pero ¿cómo se pueden ...
  #1 (permalink)  
Antiguo 25/11/2014, 01:45
Avatar de madman_18  
Fecha de Ingreso: agosto-2010
Mensajes: 792
Antigüedad: 9 años, 4 meses
Puntos: 14
Pregunta Acelerar llamadas Ajax en wordpress

Hola a todos!

Tengo una duda relacionada con Ajax en wordpress...sé que la llamada a ajax hay que hacerla al ajax-admin pero ¿cómo se pueden "acelerar" un poco las llamadas?

En mi caso, por ejemplo, estoy usando ajax para mandar un formulario web pero veo que tarda casi 2 segundos en hacer la llamada y sacarme el resultado (si el formulario se puede mandar, si falta algún campo, si va todo bien, etc...).

¿Hay alguna forma de acelerar las llamadas ajax en wordpress?
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, te convertes en algo muy diferente"
  #2 (permalink)  
Antiguo 26/11/2014, 12:53
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 15 años
Puntos: 145
Respuesta: Acelerar llamadas Ajax en wordpress

Cita:
Iniciado por madman_18 Ver Mensaje
Hola a todos!

Tengo una duda relacionada con Ajax en wordpress...sé que la llamada a ajax hay que hacerla al ajax-admin pero ¿cómo se pueden "acelerar" un poco las llamadas?

En mi caso, por ejemplo, estoy usando ajax para mandar un formulario web pero veo que tarda casi 2 segundos en hacer la llamada y sacarme el resultado (si el formulario se puede mandar, si falta algún campo, si va todo bien, etc...).

¿Hay alguna forma de acelerar las llamadas ajax en wordpress?
Lo que puedes hacer es pasar algunas tareas que estas haciendo con php a javascript, por ejemplo las validaciones de formulario, de hecho puedes hacerlas incluso con html5, pero el tiempo de respuesta depende del rendimiento de tu servidor, de tu conexión de internet, etc.

En todo caso no creo que pierdas un cliente porque la respuesta sea de 2 segundos, solo asegurate de enviar un mensaje al usuario durante esos 2 segundos, por ejemplo "Procesando, espere un momento".

Saludos.
__________________
http://chicho.ninja yiaaaa
  #3 (permalink)  
Antiguo 15/12/2014, 06:46
Avatar de madman_18  
Fecha de Ingreso: agosto-2010
Mensajes: 792
Antigüedad: 9 años, 4 meses
Puntos: 14
Respuesta: Acelerar llamadas Ajax en wordpress

Cita:
Iniciado por chichote Ver Mensaje
Lo que puedes hacer es pasar algunas tareas que estas haciendo con php a javascript, por ejemplo las validaciones de formulario, de hecho puedes hacerlas incluso con html5, pero el tiempo de respuesta depende del rendimiento de tu servidor, de tu conexión de internet, etc.

En todo caso no creo que pierdas un cliente porque la respuesta sea de 2 segundos, solo asegurate de enviar un mensaje al usuario durante esos 2 segundos, por ejemplo "Procesando, espere un momento".

Saludos.
Ufff perdonad pero he estado bastante liado, una temporada también sin internet.... Sí eso lo hago chichote, pero aún así me sigue tardando "demasiado" cuando hago las llamadas tarda algo más que cuando se usa de forma "normal" el $.ajax de jQuery.
Supongo que al llamar a la parte de /admin/ para usar el ajax tarda ¿no? ¿Hay alguna forma de acelerar esa llamada aparte de lo que me recomiendas?
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, te convertes en algo muy diferente"
  #4 (permalink)  
Antiguo 15/12/2014, 08:16
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 15 años
Puntos: 145
Respuesta: Acelerar llamadas Ajax en wordpress

Cita:
Iniciado por madman_18 Ver Mensaje
Ufff perdonad pero he estado bastante liado, una temporada también sin internet.... Sí eso lo hago chichote, pero aún así me sigue tardando "demasiado" cuando hago las llamadas tarda algo más que cuando se usa de forma "normal" el $.ajax de jQuery.
Supongo que al llamar a la parte de /admin/ para usar el ajax tarda ¿no? ¿Hay alguna forma de acelerar esa llamada aparte de lo que me recomiendas?
Postea el link de tu sitio, quizás tengas redundancia en tu código, no sabría darte una solución sin saber cual es puntualmente el problema.

Como tips te puedo decir que compares las peticiones propias de wordpress con las creadas por ti. Abre el wp-admin (navega entre sus items), abre tu consola y analiza los tiempos de respuesta de las peticiones ajax, si vez que son muy lentas, quiere decir que los tiempos de respuesta de tu servidor son lentos y la solución es que contrates una cuenta en una empresa que tenga mejores prestaciones. Si vez que anda rápido querrá decir que el problema lo tienes en tu código.


Saludos.
__________________
http://chicho.ninja yiaaaa
  #5 (permalink)  
Antiguo 15/12/2014, 08:47
Avatar de madman_18  
Fecha de Ingreso: agosto-2010
Mensajes: 792
Antigüedad: 9 años, 4 meses
Puntos: 14
Respuesta: Acelerar llamadas Ajax en wordpress

Cita:
Iniciado por chichote Ver Mensaje
Postea el link de tu sitio, quizás tengas redundancia en tu código, no sabría darte una solución sin saber cual es puntualmente el problema.

Como tips te puedo decir que compares las peticiones propias de wordpress con las creadas por ti. Abre el wp-admin (navega entre sus items), abre tu consola y analiza los tiempos de respuesta de las peticiones ajax, si vez que son muy lentas, quiere decir que los tiempos de respuesta de tu servidor son lentos y la solución es que contrates una cuenta en una empresa que tenga mejores prestaciones. Si vez que anda rápido querrá decir que el problema lo tienes en tu código.


Saludos.
Gracias por contestar tan rápido!

Lo único que hago en mis llamadas ajax es recuperar un post y una serie de fotografías que necesito incluir para un slider y me tarda de 1,9s a 2,5s y no entiendo por qué tanta diferencia respecto a llamadas ajax que hace worpress en su admin.

El código de ajax donde recupero los post es :

Código PHP:
Ver original
  1. add_action('wp_ajax_buscar_posts', 'buscar_posts_callback');
  2. add_action('wp_ajax_nopriv_buscar_posts', 'buscar_posts_callback');
  3. function buscar_posts_callback(){  
  4.     if ((!isset($_POST["miPost"])) || (!isset($_POST["slug"]))){
  5.         echo "<p>Lo sentimos, ocurri&oacute; un error recuperando los datos.</p>";
  6.         die();
  7.     }
  8.     //Buscamos los datos del post  
  9.     $querySlider = array('category_name'=>'slider-'.$_POST["slug"],'order'=>"ASC");
  10.     $objetoSlider = new WP_Query($querySlider);
  11.     if ($objetoSlider->have_posts()){
  12.         ?>
  13.         <div class="sliderSeccion-conoce">
  14.             <div class="slider-wrapper theme-default">
  15.                 <div id="slider-conoce" class="nivoSlider">
  16.                 <?php
  17.                     while($objetoSlider->have_posts()){
  18.                         $objetoSlider->the_post();
  19.                         if (has_post_thumbnail()){
  20.                             the_post_thumbnail();
  21.                         }
  22.                     }  
  23.                 ?>                 
  24.                 </div>
  25.             </div>
  26.         </div>
  27.         <?php  
  28.         wp_reset_postdata();
  29.     }
  30.     ?>
  31.     <?php
  32.         $queryDatos = array("cat"=>$_POST["miPost"]);
  33.         $objetoDatos = new WP_Query($queryDatos);
  34.         if ($objetoDatos->have_posts()){
  35.         ?>
  36.             <div class="contenido-conoce">
  37.                 <?php
  38.                     while($objetoDatos->have_posts()){
  39.                         $objetoDatos->the_post();                      
  40.                         ?>
  41.                         <div class="tituloContenido-conoce"><p><?php the_title();?></p></div>
  42.                         <div class="textoContenido-conoce"><?php the_content();?></div>
  43.                         <?php
  44.                     }                  
  45.                     if ($_POST["slug"]=="conoce-origenes"){
  46.                         ?>
  47.                         <a class="enlaceContenido-conoce" href="algunsition" target="_blank">M&aacute;s informaci&oacute;n.</a>
  48.                         <?php  
  49.                     }
  50.                 ?>
  51.             </div>
  52.             <?php      
  53.             wp_reset_postdata();
  54.         }
  55.     ?>
  56.     <script type="text/javascript">
  57.         $(document).ready(function(){
  58.             $("#slider-conoce").nivoSlider({
  59.                 directionNav:true,
  60.                 effect:'fade',
  61.                 pauseTime: 4000,
  62.                 animSpeed:1000,
  63.                 slices:1
  64.             });
  65.             $("#contenido-conoceDerecha").show("fade");
  66.         });
  67.     </script>
  68.     <?php  
  69.     die();

No es un código excesivamente complejo ni son 200 líneas de funcion...no sé donde puede estar tanta demora en la llamada ajax. :S
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, te convertes en algo muy diferente"
  #6 (permalink)  
Antiguo 15/12/2014, 09:33
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 15 años
Puntos: 145
Respuesta: Acelerar llamadas Ajax en wordpress

Ahora la duda que me asalta es si el tiempo que mencionas en los post anteriores, es el tiempo en que demora el servidor en devolver el html o es el tiempo que demora en devolver el html + la carga de las fotos en el browser, son cosas diferentes.

Lo que veo es que en tu petición ajax, lo que haces es devolver un bloque html, y dentro van fotos que animas con el plugin nivoslider. Debes tener en cuenta que las fotos que van dentro de ese código html no se devuelven cargadas, es decir, recién se comenzarán a cargar una vez finalizada la respuesta a tu petición Ajax. Y el tiempo que demore en cargar las fotos dependerá del peso de estas, ideal es que las tengas optimizadas para web y al tamaño justo.
__________________
http://chicho.ninja yiaaaa
  #7 (permalink)  
Antiguo 16/12/2014, 01:35
Avatar de madman_18  
Fecha de Ingreso: agosto-2010
Mensajes: 792
Antigüedad: 9 años, 4 meses
Puntos: 14
Respuesta: Acelerar llamadas Ajax en wordpress

Cita:
Iniciado por chichote Ver Mensaje
Ahora la duda que me asalta es si el tiempo que mencionas en los post anteriores, es el tiempo en que demora el servidor en devolver el html o es el tiempo que demora en devolver el html + la carga de las fotos en el browser, son cosas diferentes.

Lo que veo es que en tu petición ajax, lo que haces es devolver un bloque html, y dentro van fotos que animas con el plugin nivoslider. Debes tener en cuenta que las fotos que van dentro de ese código html no se devuelven cargadas, es decir, recién se comenzarán a cargar una vez finalizada la respuesta a tu petición Ajax. Y el tiempo que demore en cargar las fotos dependerá del peso de estas, ideal es que las tengas optimizadas para web y al tamaño justo.
Las fotos están optimizadas (he reducido el tamaño de las imágenes y demás) y son fotos que no pesan mucho...¿puede ser al iniciar el javascript que me arrancaría el nivoSlider?
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, te convertes en algo muy diferente"

Etiquetas: acelerar, ajax, llamadas
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 17:20.