Foros del Web » Programando para Internet » Javascript »

¿Cómo ejecutar función php después de 2 segundos de haber cargado la página?

Estas en el tema de ¿Cómo ejecutar función php después de 2 segundos de haber cargado la página? en el foro de Javascript en Foros del Web. Hola amigos! Necesito su ayuda por favor. Mi función: Código PHP:                  echo   recaptcha_get_html ( $publickey );  Idea: Ejecutar función después de 2 segundos ...
  #1 (permalink)  
Antiguo 28/07/2014, 06:36
 
Fecha de Ingreso: abril-2012
Ubicación: Argentina
Mensajes: 215
Antigüedad: 12 años
Puntos: 2
Información ¿Cómo ejecutar función php después de 2 segundos de haber cargado la página?

Hola amigos! Necesito su ayuda por favor.

Mi función:

Código PHP:
     
          
echo  recaptcha_get_html($publickey); 
Idea: Ejecutar función después de 2 segundos de haber cargado la página, quizás con ajax o setTimeout()

Todos mis intentos han fallado
  #2 (permalink)  
Antiguo 28/07/2014, 06:58
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: ¿Cómo ejecutar función php después de 2 segundos de haber cargado la págin

No sé porqué lo publicas en el foro de CSS la verdad. Lo moveré a JavaScript ya que una vez cargada la página PHP ya ocurrió.
  #3 (permalink)  
Antiguo 28/07/2014, 08:00
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: ¿Cómo ejecutar función php después de 2 segundos de haber cargado la págin

Si la función está en tu código PHP, puedes retrasar el inicio de su ejecución con el método sleep, mientras que si está escrita en JavaScript, utiliza el método setTimeout. Revisa la información de ambos enlaces, hay ejemplos.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 28/07/2014, 08:07
 
Fecha de Ingreso: junio-2008
Mensajes: 137
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: ¿Cómo ejecutar función php después de 2 segundos de haber cargado la págin

Ya que la función es PHP, "sleep" sería lo correcto. Yo lo utilizo bastante para algunos scripts.
  #5 (permalink)  
Antiguo 29/07/2014, 00:03
 
Fecha de Ingreso: abril-2012
Ubicación: Argentina
Mensajes: 215
Antigüedad: 12 años
Puntos: 2
Respuesta: ¿Cómo ejecutar función php después de 2 segundos de haber cargado la págin

Amigos, gracias por sus respuestas.

Les comento que todavía no logro tener éxito, porque lo que necesito es que primero cargue la página (css, js...) y luego de 2 segundos cargue la siguiente función:

Código PHP:
recaptcha_get_html($publickey); 
Lo que logré es hasta acá:

Código PHP:
function llamada_recaptcha ($publickey) {    
    if (isset(
$publickey)) {
                                           
sleep(2);
                                           return 
recaptcha_get_html($publickey);
         }    
}    
    
echo 
llamada_recaptcha ($publickey); 
Esto hace que se pause la página por 2 segundos y luego se descargue todo (el css, todos los js, la función nombrada...)

¿Habrá algo más específico para corregirlo? Por favor
  #6 (permalink)  
Antiguo 29/07/2014, 00:49
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: ¿Cómo ejecutar función php después de 2 segundos de haber cargado la págin

Tengo entendido que el código del lado del servidor (PHP) se ejecuta antes que el del lado del cliente (HTML, CSS, JS), por lo tanto, lo que buscas hacer es literalmente imposible, a menos que embebas a dicho archivo usando Ajax, para lo cual sí podrías retrasar la carga del script que embeberá al archivo PHP con el método setTimeout.

Código Javascript:
Ver original
  1. setTimeout(funcion_ajax, 2000);

En donde funcion_ajax es la función o bloque de código que usarás para ejecutar la carga asíncrona.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 29/07/2014, 10:54
 
Fecha de Ingreso: abril-2012
Ubicación: Argentina
Mensajes: 215
Antigüedad: 12 años
Puntos: 2
Respuesta: ¿Cómo ejecutar función php después de 2 segundos de haber cargado la págin

Hola Alexis.
Muy bien estuve probando tu guía y me sale hasta cierto punto, porque carga el primer "echo" que tiene un texto de prueba pero no el 2ndo. que es la función requerida.

add.php:


Código PHP:
echo "texto imprime bien";
echo 
recaptcha_get_html($publickey); 
js:

Código:
$(document).ready(function() {
    function recaptcha_get_html(){
        value = $('#value').text();
        $.ajax({
            type: "POST",
            url: "../content/add.php",            
	    async: false,
            success: function(data) {
                $('#value').text(data);
            }
        });
    }

    setTimeout(recaptcha_get_html, 3000);
});
html:

Cita:
<span id="value">
texto imprime bien
</span>

Última edición por mikehove; 29/07/2014 a las 11:16
  #8 (permalink)  
Antiguo 29/07/2014, 11:24
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: ¿Cómo ejecutar función php después de 2 segundos de haber cargado la págin

Eso parece ser un problema en el archivo PHP en el que se encuentra la función. Prueba haciendo esto:

Código PHP:
Ver original
  1. $foo = recaptcha_get_html($publickey);
  2. echo !is_null($foo) ? 'Bien' : 'Mal';

Si se imprime 'Mal', es porque tu función no está devolviendo valor alguno.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #9 (permalink)  
Antiguo 29/07/2014, 11:42
 
Fecha de Ingreso: abril-2012
Ubicación: Argentina
Mensajes: 215
Antigüedad: 12 años
Puntos: 2
Respuesta: ¿Cómo ejecutar función php después de 2 segundos de haber cargado la págin

Gracias a tu ayuda siento que estoy más cerca del objetivo, Alexis.

Probé y me devuelve el valor "bien".

Este es el archivo.php:



Código PHP:
require_once('recaptchalib.php');
$publickey "xxxxxxxxxxxx";


$foo recaptcha_get_html($publickey);
echo !
is_null($foo) ? 'Bien' 'Mal'
  #10 (permalink)  
Antiguo 29/07/2014, 11:52
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: ¿Cómo ejecutar función php después de 2 segundos de haber cargado la págin

Entonces, ahora solo te queda imprimir el valor de $foo, aunque sería bueno ver qué devuelve tu función, quizá sea algún valor que no puedas imprimir de esa forma, como un array.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #11 (permalink)  
Antiguo 29/07/2014, 12:08
 
Fecha de Ingreso: abril-2012
Ubicación: Argentina
Mensajes: 215
Antigüedad: 12 años
Puntos: 2
Respuesta: ¿Cómo ejecutar función php después de 2 segundos de haber cargado la págin

Alexis muchas gracias por todo tu tiempo!

Todavía no se puede cargar la función.





Voy a profundizarlo en este nuevo post:
http://www.forosdelweb.com/f18/setti...ptcha-1105482/


Lo que devuelve es esto:

Cita:
<script type="text/javascript" src="http://www.google.com/recaptcha/api/challenge?k=6Lea_fQSAAAAAONYLxHV0y7YAx1YbRn72JpxsZ GC"></script>

<noscript>
<iframe src="http://www.google.com/recaptcha/api/noscript?k=6Lea_fQSAAAAAONYLxHV0y7YAx1YbRn72JpxsZG C" height="300" width="500" frameborder="0"></iframe><br/>
<textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
<input type="hidden" name="recaptcha_response_field" value="manual_challenge"/>
</noscript>

Última edición por mikehove; 29/07/2014 a las 13:33

Etiquetas: ajax, ajax-php, css, js, php
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:34.