Existe alguna forma de cargar JavaScript antes que PHP

publicado por: Anonymous

Antes de que alguien se me lance al cuello he de decir que se que PHP se carga en el servidor y construye la pagina, que después de esto el cliente carga el HTML resultante con su JavaScript y sus eventos.

Dicho esto, me gustaría saber si existe algún método para cargar JavaScript antes que PHP.

Esta idea viene del siguiente problema. Tengo un script que muestra el típico dialogo de "Cargando…". Cuando las consultas PHP no son muy pesadas no tarda mucho en ser mostrado mientras el HTML se carga.

Esta seria la estructura del script:

<html>
    <head>
        <script>
            waitingDialog.show('CARGANDO...', {dialogSize: 'sm', progressType: 'warning'});
        </script>
    </head>
    <?php
        //AQUI IRIA EL PHP COMPLETO
    ?>
    <body>
        ....
    </body>
    <script>
        $(document).ready(function() {
            waitingDialog.hide();
        });
    </script>
</html>

En el caso de tener un PHP pesado, la pagina permanece cargando un buen rato pero no muestra el mensaje de cargando, porque como se ha mencionado al principio PHP carga antes que JavaScript.

Carga

Como veis un minuto de espera puede ser muy pesado para el usuario y mas aun si no tiene ningún mensaje de que la pagina se esta cargando.

He investigado un poco y la mayoría dice que cargar JavaScript antes que PHP es imposible, pero a lo mejor hay alguna manera de que la carga de la pagina se haga de manera estructurada dejando lo mas pesado para el final (desconozco si es posible o no).

Nota: Como solución alternativa, se ha planteado buscar un plugin php que muestre este dialogo. Por lo que tambien acepto respuestas con el uso de otros plugins.

solución

Respuesta corta: No se puede cargar JS antes que PHP.

Respuesta larga: Tendrás que simularlo mediante AJAX.

En resumen, lanzas el HTML con el loader y sin PHP, y por Ajax (en el document.ready) llamas a un PHP que renderice el contenido de tu pagina, una vez recibas la respuesta del PHP, incluyes el contenido en tu pagina en el body y cierras el dialogo. Esto es el principio basico de las SPA (Single-Page Application).

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *