Cargando gif cuando el formulario PHP se está procesando

Tengo un formulario PHP que incluye un archivo que se carga al enviarlo. Como permito archivos bastante grandes, la página a menudo puede permanecer allí cargándose durante años.

¿Hay alguna forma de mostrar al usuario una animación de carga de algún tipo?

preguntado el 16 de mayo de 11 a las 18:05

una función de javascript que inserta la animación en el DOM, vinculada al evento de envío del formulario. -

2 Respuestas

Necesitará JQuery para usar mi código, pero vale la pena:

Coloque esta etiqueta de secuencia de comandos en su sitio <head>:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>

Coloque un gif de carga oculto en algún lugar, donde quiera verlo

<img id="loader" src="loading.gif" />

Ocultarlo al cargar la página: $('#loader').hide();

Luego, en Javascript (o incluso mejor JQuery), dentro de su función de envío ... mostrarlo / ocultarlo:

function submit()
{
    $('#loader').show();
    // do your upload stuff
    $('#loader').hide();    
}

contestado el 16 de mayo de 11 a las 22:05

Esta es una buena idea al enviar datos simples, pero ¿qué tal enviar un archivo bastante grande? ¿Cómo funciona en los principales navegadores? - Tadeck

@Tadeck: PHP no es una plataforma ideal para cargas de archivos grandes. Si hay algún problema técnico en la carga, lo más probable es que toda la parte que ya se haya cargado se pierda y no se pueda reanudar. Pero aparte de eso, a los navegadores realmente no les importa si una carga es de 1 byte o 50 gigabytes; si el navegador puede acceder al archivo, se puede cargar. - Marc B

@Marc No entiendo tu respuesta. Claro, PHP tiene muchas desventajas y otros lenguajes son mejores cuando se trata de implementar funciones específicas, pero ¿cómo se relaciona con mi pregunta sobre el envío de datos textuales ingresados ​​por el usuario frente al envío de archivos grandes? El caso era que no puede enviar archivos a través de AJAX a menos que use Flash, etc. Esto no tiene nada que ver con el lado del servidor y probablemente ocultará el botón giratorio (cargador) antes de que el usuario cargue el archivo. Esta es la debilidad de la solución anterior, no PHP. - Tadeck

Pondría una imagen oculta en algún lugar de la página. Llame a una función de javascript al enviar el formulario y deje que esa función muestre la imagen antes de enviar el formulario.

contestado el 16 de mayo de 11 a las 22:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.