Visualizzazione dei risultati da 1 a 4 su 4

Discussione: priorità codice

  1. #1

    priorità codice

    ciao

    tutti i questionari sparsi nel mio sito rimandano ad una pagina go.php

    questa è una pagina "spartiacque", a seconda del tipo di dati che riceve in POST include un file diverso con le relative istruzioni

    mi sono accorto che un mio script (complice credo una penuria di RAM) impiega in casi limite anche 30/35 secondi per eseguire i calcoli

    per chi è abituato ad una linea veloce e frequenta il mio sito , molto veloce, 30 secondi sono un'eternità

    ho pensato di mettere in cima a go.php, subito dopo l'inizializzazione della sessione, la scritta "attendere prego"

    codice:
    <?
    session_start();
    $id_sessione=session_id();
    ?>
    
    
    Attendere prego
    
    <?
    ... codice ...
    ?>
    Il problema è che mi visualizza l'attendere prego solo dopo aver eseguito tutte le istruzioni

    Ma santa miseria, se lo scrivo all'inizio non dovrebbe prima stampare a video e poi eseguire le istruzioni?

    Apache quando legge la pagina che cacchio ne sa che dopo "attendere prego" ci sono delle istruzioni php?

    Ovviamente senza istruzioni php tutto va a meraviglia

    Sapete come fare (e come mai)?

    Ciao e grazie,

    Edoardo

  2. #2
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    il server prima elabora la pagina e poi la invia al browser, per questo anche se metti la scritta in cima, questa compare assieme al resto.
    Errare humanum est, perseverare ovest

  3. #3
    in teoria il problema sarebbe risolvibile attraverso l'istruzione flush che invia al server web tutto l'output generato fino a quel momento. In pratica però l'ultima parola ce l'ha il server web che potrebbe continuare a tenere l'output nel suo buffer aspettando che si riempia.

  4. #4
    grazie per l'aiuto

    Io, da autodidatta, pensavo che la pagina venisse letta dall'alto verso il basso e man mano venisse elaborata e visualizzata

    Invece come giustamente mi insegnate, viene bufferizzata

    Scrivo come ho risolto in caso qualcuno in futuro ne avesse bisogno:

    Inizialmente avevo aggirato l'ostacolo preparando una pagina con frames: il primo era il "loading", il secondo il codice

    Quando terminava il codice con un javascript

    <script language='JavaScript'>
    top.location = 'http://www.dominio.it/risultati.php'
    </script>
    Aggiornavo l'intera pagina reindirizzandola verso i risultati

    Probabilmente per molti funzionerà, per me no perchè nela passaggio dei dati tramite GET ci sono errori che non sono riuscito a risolvere

    Ho poi provato con flush() che però non funzionava

    Seguendo le opinioni degli utenti di php.net ci sono riuscito scrivendo così:

    flush();
    ob_flush();
    Tutto funziona egragiamente, ma solo con IE, mentre con Netscape e Firefox non ci sono errori ma non viene rispettato il flush e si procede normalmente col buffer

    Con versioni precedenti di Explorer (ho la 6) non ho potuto provare, così neppure con Opera, Safari e altri browser (IE secondo le mie statistiche è al 95.7%)

    Ciao e grazie,

    Edoardo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.