Visualizzazione dei risultati da 1 a 6 su 6

Discussione: php in attesa

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    14

    php in attesa

    Buonasera a tutti. Premetto che non penso abbia beccato la sezione giusta perchè in effetti non credo che il mio problema si possa risolvere in php. Provo a spiegarmi. Ho un pulsante button che mi reindirizza su una pagina php. All'interno di questa pagina php che presenta anche del codice html viene eseguita una funzione. Il mio obiettivo sarebbe aspettare che il risultato di questa funzione diventi true e nel frattempo mostrare il contenuto html della pagina. Come posso risolvere? Avevo pensato una cosa del genere ma naturalmente non funziona e oltretutto non viene mostrato il contenuto della pagina:

    Codice PHP:
    while(1==1){
        if(
    funzione()==true){
            exit();
        }

    Grazie per la disponibilità

  2. #2
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    ob_flush ti permette di rilasciare l'output immediatamente. Ma la stai pensando molto male, la puoi ripensare utilizzando un altro approccio. Se fornisci qualche indicazione sul risultato che vuoi raggiungere possiamo darti dei suggerimenti più appropriati.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    14
    Diciamo che quello che sto cercando di creare è un giochino dove un utente può creare delle partite ed attendere che un'altro utente ci si unisca. In poche parole colui che crea la partita inserisce una tupla nel database con le info relative alla partita (id_partita, giocatore_che_crea etc etc) tra cui un campo Partita_Iniziata che può assumere true o false. Il valore di questo campo viene impostato a true quando naturalmente lo sfidante accetta la partita. Ora colui che crea la partita deve rimanere in attesa che l'avversario accetti impostando il valore del db precedentemente citato. Questo è il problema generale.
    Nello specifico vorrei risolvere andando a verificare da parte di colui che crea la partita (mediante una funzione che interroga il db), ogni tot tempo o con un ciclo se l'avversario ha accettato o no (Partita_Iniziata == true). Da qui l'insano ciclo del primo post. Naturalmente se non mi sono spiegato bene fatemi sapere. Grazie ancora

  4. #4
    secondo me per questo tipo di lavoro ti conviene guardare ad ajax.
    così puoi gestire chiamate asincrone e tenere la pagina in wait fino a che l'altro giocatore non finisce il suo turno.

  5. #5
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    Insomma, vuoi creare una applicazione real-time. Si tratta di un bell'argomento, relativamente complesso, per cui dare la risposta completa in questo post è fuori questione. Ma posso darti qualche indicazioni sul come potrebbe essere fatto.
    Inizio con il dirti che la tua soluzione è la peggiore possibile. Con php devi sempre (o quasi) terminare l'esecuzione dello script il più in fretta possibile. In genere, il long polling con apache è sempre peggio di una pessima idea. No, è "più peggio del peggio". Finiresti in pochi secondi con il rendere inaccessibile il tuo stesso sito, occupando risorse inutilmente, quindi è da evitare. Quello che devi fare, a grandi linee, è restituire la pagina all'utente e, lato client, comunicare con il server per ottenere "gli ultimi aggiornamenti".
    Questo è un bel post dove sono elencati le varie tecniche per comunicare in tempo reale con il server: http://stackoverflow.com/questions/1...55533#12855533

    Tra queste c'è ajax polling, che ti ha suggerito fermat, cioè, ogni tot. tempo apri una nuova connessione al server per recuperare/controllare se ci sono stati cambiamenti. E' decisamente la più banale delle soluzioni, la meno performante di tutte, ma funziona. E' una strategia che mi sento di consigliarti. Se poi in futuro decidi di fare un passo in avanti, allora puoi adottare i websocket come soluzione. Che è la tecnica con cui si fanno le vere applicazioni real time.
    Ultima modifica di .Kurt; 11-01-2015 a 15:51

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    14
    Ok grazie almeno adesso so qual'è il nemico da battere. Grazie

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.