Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Reload intelligente

  1. #1
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657

    Reload intelligente

    Voglio fare una chat in php e volevo fare in modo che i reload della pagina fosse quanto più intelligente possibile. Mi spiego meglio: voglio fare un reload che aggiorni la pagina SOLO QUANDO c'è una o più righe in più dell'ultimo reload. Non voglio fare reload a vuoto, perché farrebbe confusione

  2. #2
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    up

  3. #3
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    uppettino

  4. #4
    non è sicuramente PHP che ti permette di farlo, una volta che la pagina è stata inviata dal server al client PHP non esiste più, non può dunque richiedere un reload senza una richiesta specifica del client.

  5. #5
    la soluzione che avevo trovato è di creare un piccolo frame che non mostra nulla come output ma che ogni tot secondi si aggiorna ed interroga il database guardando qual'è l'ultima righa di chat inserita e la confronta con quella memorizzata nella session dell'utente (magari soltanto l'id così eviti di impiegare molto spazio).

    se la riga è uguale vuol dire che il refresh non è necessario altrimenti aggiorni il frame principale ricaricando i dati della chat.

    mi sa che cmq una query al databasa per ogni refresh la devi fare.

    C'è da dire che una query tipo: select max(id) as numero from righe_chat è decisamente diversa da prendere ogni volta tutti i dati e mostrarli all'utente.

  6. #6
    Utente di HTML.it L'avatar di erme2
    Registrato dal
    Oct 2002
    Messaggi
    177
    Ma non sarebbe più facile usare javascript per fare un reload automatico della pagina ogni tot secondi?

    sul frame nascostro scrivi:
    codice:
    <frame name="nascosto" src="da_aggiornare.php" onload="aggiorna(60)">
    e aggiungi queste funzioni:
    codice:
    function aggiorna(secondi){
    	intervallo=secondi * 1000;
    	timeout = window.setTimeout("ricarica()", intervallo);
    }
    function ricarica() {
         window.location.href="da_aggiornare.php";
    }
    così dovrebbe andare
    eRMéS! RM98!
    "...è mai possibile oh porco di un cane, che le avventure in codesto reame, debban risolversi tutte con grandi puttane!..." - (Carlo Martello ritorna dalla battaglia di Poitiers -Fabrizio De Andrè/Paolo Villaggio)

  7. #7
    oppure...una soluzione che avevo adottato tempo fa...e che quando si fa la richiesta tramite l'iframe nascosto si manda l'id dell'ultima riga inserita nel db...e lo script estrae tutte le righe successiva a quella che non appartengono all'utente ^^

    si fa il controllo anche ogni mezzo secondo, tanto è iper leggero, ed il gioco è fatto ^^

  8. #8
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    Avevo pensato anche io di mettere un frame nascosto (vedere 3d Script in background). Proverò dunque a mettere un frame nascosto. Ma per aggiornare il frame principale, cosa faccio? Lo so che sarebbe quasi un OT, ma come si fa?

  9. #9
    usando js scrivi al suo intero e il gioco è fatto

  10. #10
    Utente di HTML.it L'avatar di erme2
    Registrato dal
    Oct 2002
    Messaggi
    177
    in js per cambiare (aggiornare) pagina il comando dovrebbe essere

    codice:
    parent.nome_frame.location="pagina.php";
    eRMéS! RM98!
    "...è mai possibile oh porco di un cane, che le avventure in codesto reame, debban risolversi tutte con grandi puttane!..." - (Carlo Martello ritorna dalla battaglia di Poitiers -Fabrizio De Andrè/Paolo Villaggio)

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.