Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Ajax long polling

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500

    Ajax long polling

    Salve ragazzi,
    sto progettando un sito web e per questo motivo non ho ancora iniziato a scrivere codice.

    IL PROBLEMA IN SINTESI E' QUESTO:
    Se ho due utenti connessi ad una pagina che devono scambiarsi messaggi senza alcun refresh, come faccio?

    Inizialmente ho pensato subito di fare una chiamata ajax ogni 0,2secondi che mi restituiva eventuali nuovi messaggi ma questa soluzione è assolutamente controproducente.

    Ho letto un pò in internet ma non ho trovato una soluzione efficace

    COME RISOLVEREI:
    Farei una chiamata AJAX(con un timeout) e nel codice php farei un for infinito finchè non esistono nuovi messaggi.

    CODIFICA:
    Codice PHP:
    while(!newMessage){
         
    usleep(5000);
    }

    echo 
    getMEssage(); 
    codice:
    $.ajax({
          type: "GET",
          url: "polling.php",
          async: true,
          cache: false,
          timeout:50000,
          success: function(data){ 
              //Nuovo messaggio
          },
          error: function(){
              //Timeout finito
          }
    });
    Potrebbe essere una soluzione?

  2. #2
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732
    Secondo me ti conviene fare un loop infinito, il tempo vedilo tu, perché può anche capitare che io scriva un messaggio a te e subito dopo lo integri con un altro messaggio... se non ho capito male con il tuo sistema il secondo non arriverebbe subito a destinazione

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500
    Grazie per le risposte!

    Ma posso fare un loop infinito? Nel senso, è efficiente?
    È l unica soluzione al problema?
    Grazie!

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500
    Stavo vedendo un pò alcuni siti che utilizzano questa tecnica:

    http://www.alternativeoutput.it/brisk

    Mentre stai giocando, rimane aperta una chiamata AJAX infinita che credo sia quella con cui io posso capire le carte che giocano gli avversari.

    E' possibile che sia quella la chiamata da studiare?

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 © 2026 vBulletin Solutions, Inc. All rights reserved.