FAQ
Hola listeros, mi pregunta es la siguiente...

¿puedo enviar información al navegador cliente antes de tener todo el contenido de una página?.

Hago una consulta (bastante compleja) a una base de datos y mientras la recibo del gestor de la BD (de 60 a 90 segundos), quisiera poner "algo" en la página cliente.

Gracias...
--------------------------
Milo
--------------------------

Search Discussions

  • Pere Picornell at Dec 5, 2003 at 2:16 pm
    A parte del tema del buffer que no he tocado nunca (aunque creo que mas bien
    es para poder usar cosas como header después de haber producido una salida),
    mírate flush(), se supone que sirve para ir "vaciando" la información
    mandándola al navegador.

    Pero cómo solo lo he probado en local no estoy muy seguro... pero vamos tal
    cual lo pone :)



    ----------------------------------------------------------------------------
    Pere Picornell, Director de Projectes - p.picornell@mediactives.com
    Mediactive Network - Servicios avanzados de internet
    www.mediactives.com - Tel.: 93 860 55 50 / Fax: 93 860 55 51
    ----------------------------------------------------------------------------
    -----Mensaje original-----
    De: Milo
    Enviado el: viernes, 05 de diciembre de 2003 15:12
    Para: lista@phpes.com
    Asunto: [PHP-ES] Envio de información a cliente sin pagina completa

    Hola listeros, mi pregunta es la siguiente...

    ¿puedo enviar información al navegador cliente antes de tener todo el
    contenido de una página?.

    Hago una consulta (bastante compleja) a una base de datos y mientras la
    recibo del gestor de la BD (de 60 a 90 segundos), quisiera poner "algo" en
    la página cliente.

    Gracias...
    --------------------------
    Milo
    --------------------------
  • LaRanaBudWeisEr at Dec 5, 2003 at 2:20 pm
    Si que puedes hacerlo,

    PHP tiene una serie de funciones para ello:

    http://es.php.net/manual/en/ref.outcontrol.php

    También puedes usar javascript para mostrar un mensaje mientras la tabla se
    está cargando y esconderlo una vez hayas recibido el contenido de tu base de
    datos.

    Un Saludo.
    __________________________________________________

    Jose Antonio Rios - mailto:jarios@ciberbell.net

    EasySQL - http://www.easysql.net
    La base de datos online.

    CiberBell - http://www.ciberbell.net
    Web de noticias tecnológicas de actualización
    diaria.

    TheWebAnimals, S.L. - http://www.thewebanimals.com
    Internet, Hosting, Webs, Programacion,
    Diseño, Multimedia, Publicidad...
    __________________________________________________


    -----Mensaje original-----
    De: Milo
    Enviado el: viernes, 05 de diciembre de 2003 15:12
    Para: lista@phpes.com
    Asunto: [PHP-ES] Envio de información a cliente sin pagina completa

    Hola listeros, mi pregunta es la siguiente...

    ¿puedo enviar información al navegador cliente antes de tener todo el
    contenido de una página?.

    Hago una consulta (bastante compleja) a una base de datos y mientras la
    recibo del gestor de la BD (de 60 a 90 segundos), quisiera poner "algo" en
    la página cliente.

    Gracias...
    --------------------------
    Milo
    --------------------------
  • Milo at Dec 5, 2003 at 3:16 pm
    El flush() funciona muy bien, tengo que probar las que tú me dices por si
    son mejores...
    Me puedes enviar un ejemplo en javascript para hacer lo que comentas?

    Gracias...
    --------------------------
    Milo
    --------------------------

    ----- Original Message -----
    From: "LaRanaBudWeisEr" <laranabudweiser@ciberbell.net>
    To: <lista@phpes.com>
    Sent: Friday, December 05, 2003 3:22 PM
    Subject: RE: [PHP-ES] Envio de información a cliente sin pagina completa


    Si que puedes hacerlo,

    PHP tiene una serie de funciones para ello:

    http://es.php.net/manual/en/ref.outcontrol.php

    También puedes usar javascript para mostrar un mensaje mientras la tabla se
    está cargando y esconderlo una vez hayas recibido el contenido de tu base de
    datos.

    Un Saludo.
    __________________________________________________

    Jose Antonio Rios - mailto:jarios@ciberbell.net

    EasySQL - http://www.easysql.net
    La base de datos online.

    CiberBell - http://www.ciberbell.net
    Web de noticias tecnológicas de actualización
    diaria.

    TheWebAnimals, S.L. - http://www.thewebanimals.com
    Internet, Hosting, Webs, Programacion,
    Diseño, Multimedia, Publicidad...
    __________________________________________________


    -----Mensaje original-----
    De: Milo
    Enviado el: viernes, 05 de diciembre de 2003 15:12
    Para: lista@phpes.com
    Asunto: [PHP-ES] Envio de información a cliente sin pagina completa

    Hola listeros, mi pregunta es la siguiente...

    ¿puedo enviar información al navegador cliente antes de tener todo el
    contenido de una página?.

    Hago una consulta (bastante compleja) a una base de datos y mientras la
    recibo del gestor de la BD (de 60 a 90 segundos), quisiera poner "algo" en
    la página cliente.

    Gracias...
    --------------------------
    Milo
    --------------------------


    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    via news: news://news.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com

    ----------------------------------------------------------------------------
    ------
    AVISO LEGAL

    Este mensaje esta dirigido unicamente a su destinatario y es confidencial.
    Si lo ha recibido por error, PROCESOS OPERATIVOS S.A. le informa que su
    contenido es reservado y su lectura, copia y uso no esta autorizado.
    PROCESOS OPERATIVOS S.A. no garantiza la confidencialidad de los mensajes
    transmitidos via internet y se reserva el derecho a ejercer las acciones
    legales que le correspondan contra todo tercero que acceda de forma
    ilegitima
    al contenido de este mensaje y al de los ficheros contenidos en el mismo.

    ----------------------------------------------------------------------------
    ------




    ----------------------------------------------------------------------------------
    AVISO LEGAL

    Este mensaje esta dirigido unicamente a su destinatario y es confidencial.
    Si lo ha recibido por error, PROCESOS OPERATIVOS S.A. le informa que su
    contenido es reservado y su lectura, copia y uso no esta autorizado.
    PROCESOS OPERATIVOS S.A. no garantiza la confidencialidad de los mensajes
    transmitidos via internet y se reserva el derecho a ejercer las acciones
    legales que le correspondan contra todo tercero que acceda de forma ilegitima
    al contenido de este mensaje y al de los ficheros contenidos en el mismo.

    ----------------------------------------------------------------------------------
  • LaRanaBudWeisEr at Dec 5, 2003 at 4:21 pm
    Hola de nuevo,

    En realidad es bastante fácil: cuando generes el elemento HTML que debe
    mostrar el mensaje, tienes que darle un identificador (id), luego en tu
    código php, una vez hayas pasado la porción de código que ralentiza la
    generación de la página lo ocultas usando javascript, más o menos podría ser
    así:

    <div id='message'>Espere un momento, cargando datos...</div>

    <? ob_flush() o flush() y el código que ataca a tu base de datos ?>

    <script
    type='text/javascript'>document.getElementById('message').style.display =
    'none';</script>

    Un Saludo.
    __________________________________________________

    Jose Antonio Rios - mailto:jarios@ciberbell.net

    EasySQL - http://www.easysql.net
    La base de datos online.

    CiberBell - http://www.ciberbell.net
    Web de noticias tecnológicas de actualización
    diaria.

    TheWebAnimals, S.L. - http://www.thewebanimals.com
    Internet, Hosting, Webs, Programacion,
    Diseño, Multimedia, Publicidad...
    __________________________________________________


    -----Mensaje original-----
    De: Milo
    Enviado el: viernes, 05 de diciembre de 2003 16:18
    Para: lista@phpes.com
    Asunto: Re: [PHP-ES] Envio de información a cliente sin pagina completa

    El flush() funciona muy bien, tengo que probar las que tú me dices por si
    son mejores...
    Me puedes enviar un ejemplo en javascript para hacer lo que comentas?

    Gracias...
    --------------------------
    Milo
    --------------------------

    ----- Original Message -----
    From: "LaRanaBudWeisEr" <laranabudweiser@ciberbell.net>
    To: <lista@phpes.com>
    Sent: Friday, December 05, 2003 3:22 PM
    Subject: RE: [PHP-ES] Envio de información a cliente sin pagina completa


    Si que puedes hacerlo,

    PHP tiene una serie de funciones para ello:

    http://es.php.net/manual/en/ref.outcontrol.php

    También puedes usar javascript para mostrar un mensaje mientras la tabla se
    está cargando y esconderlo una vez hayas recibido el contenido de tu base de
    datos.

    Un Saludo.
    __________________________________________________

    Jose Antonio Rios - mailto:jarios@ciberbell.net

    EasySQL - http://www.easysql.net
    La base de datos online.

    CiberBell - http://www.ciberbell.net
    Web de noticias tecnológicas de actualización diaria.

    TheWebAnimals, S.L. - http://www.thewebanimals.com Internet, Hosting, Webs,
    Programacion, Diseño, Multimedia, Publicidad...
    __________________________________________________


    -----Mensaje original-----
    De: Milo
    Enviado el: viernes, 05 de diciembre de 2003 15:12
    Para: lista@phpes.com
    Asunto: [PHP-ES] Envio de información a cliente sin pagina completa

    Hola listeros, mi pregunta es la siguiente...

    ¿puedo enviar información al navegador cliente antes de tener todo el
    contenido de una página?.

    Hago una consulta (bastante compleja) a una base de datos y mientras la
    recibo del gestor de la BD (de 60 a 90 segundos), quisiera poner "algo" en
    la página cliente.

    Gracias...
    --------------------------
    Milo
    --------------------------


    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    via news: news://news.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/ Para dar de baja la
    suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com

    ----------------------------------------------------------------------------
    ------
    AVISO LEGAL

    Este mensaje esta dirigido unicamente a su destinatario y es confidencial.
    Si lo ha recibido por error, PROCESOS OPERATIVOS S.A. le informa que su
    contenido es reservado y su lectura, copia y uso no esta autorizado.
    PROCESOS OPERATIVOS S.A. no garantiza la confidencialidad de los mensajes
    transmitidos via internet y se reserva el derecho a ejercer las acciones
    legales que le correspondan contra todo tercero que acceda de forma
    ilegitima al contenido de este mensaje y al de los ficheros contenidos en el
    mismo.

    ----------------------------------------------------------------------------
    ------




    ----------------------------------------------------------------------------
    ------
    AVISO LEGAL

    Este mensaje esta dirigido unicamente a su destinatario y es confidencial.
    Si lo ha recibido por error, PROCESOS OPERATIVOS S.A. le informa que su
    contenido es reservado y su lectura, copia y uso no esta autorizado.
    PROCESOS OPERATIVOS S.A. no garantiza la confidencialidad de los mensajes
    transmitidos via internet y se reserva el derecho a ejercer las acciones
    legales que le correspondan contra todo tercero que acceda de forma
    ilegitima al contenido de este mensaje y al de los ficheros contenidos en el
    mismo.

    ----------------------------------------------------------------------------
    ------



    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    via news: news://news.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/ Para dar de baja la
    suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com
  • Lucas Fonzalida - Soporte Técnico at Dec 5, 2003 at 8:31 pm
    NOTA SOBRE flush():

    Algunos navegadores como el IExplorer requieren un minimo de 256 Bytes
    de información para comenzar a mostrar el contenido.
    Para que flush() funcione correctamente, utiliza espacios en blanco
    antes de la primera linea, yo lo resolví haciendo esto:

    for($i = 0; $i < 257; $i++){
    echo " ";
    }
    echo "Primera linea a mostrar...";
    flush();

    saludos.

    Lucas Fonzalida
    Responsable Técnico
    MaxMedia S.C. / www.maxmedia.com.ar
    MAMAN Fine Art Prints / www.danielmaman.com
    OyV Gestión S.R.L. / www.oyvgestion.com.ar


    -----Mensaje original-----
    De: Milo
    Enviado el: Viernes, 05 de Diciembre de 2003 12:18
    Asunto: Re: [PHP-ES] Envio de información a cliente sin pagina completa


    El flush() funciona muy bien, tengo que probar las que tú me dices por
    si
    son mejores...
    Me puedes enviar un ejemplo en javascript para hacer lo que comentas?

    Gracias...
    --------------------------
    Milo
    --------------------------
  • Lucas Fonzalida - Soporte Técnico at Dec 5, 2003 at 8:41 pm
    También puedes usar 'str_repeat(" ",256)' para rellenar.

    ej:
    --
    str_repeat(" ",256);
    echo "Primera linea a mostrar...";
    flush();


    Saludos.


    Lucas Fonzalida
    Responsable Técnico
    MaxMedia S.C. / www.maxmedia.com.ar
    MAMAN Fine Art Prints / www.danielmaman.com
    OyV Gestión S.R.L. / www.oyvgestion.com.ar

    -----Mensaje original-----
    De: Lucas Fonzalida - Soporte Técnico
    Enviado el: Viernes, 05 de Diciembre de 2003 17:31
    Asunto: RE: [PHP-ES] Envio de información a cliente sin pagina completa


    NOTA SOBRE flush():

    Algunos navegadores como el IExplorer requieren un minimo de 256 Bytes
    de información para comenzar a mostrar el contenido.
    Para que flush() funcione correctamente, utiliza espacios en blanco
    antes de la primera linea, yo lo resolví haciendo esto:

    for($i = 0; $i < 257; $i++){
    echo " ";
    }
    echo "Primera linea a mostrar...";
    flush();

    saludos.

    Lucas Fonzalida
    Responsable Técnico
    MaxMedia S.C. / www.maxmedia.com.ar
    MAMAN Fine Art Prints / www.danielmaman.com
    OyV Gestión S.R.L. / www.oyvgestion.com.ar


    -----Mensaje original-----
    De: Milo
    Enviado el: Viernes, 05 de Diciembre de 2003 12:18
    Asunto: Re: [PHP-ES] Envio de información a cliente sin pagina completa


    El flush() funciona muy bien, tengo que probar las que tú me dices por
    si
    son mejores...
    Me puedes enviar un ejemplo en javascript para hacer lo que comentas?

    Gracias...
    --------------------------
    Milo
    --------------------------


    ---------------------------------------------------------------------
    Archivo On-line: http://www.phpes.com/
    via news: news://news.phpes.com/
    Manual PHP en español: http://www.php.net/manual/es/
    Para dar de baja la suscripción, mande un mensaje a:
    lista-unsubscribe@phpes.com

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedDec 5, '03 at 2:10p
activeDec 5, '03 at 8:41p
posts7
users4
websitephp.net

People

Translate

site design / logo © 2022 Grokbase