Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 28
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500

    Chiarimenti chat [AJAX]

    Salve ragazzi,
    poco tempo fa ho sviluppato un chat in ajax, senza problemi, l'unico problema che avevo è che ogni X millisecondi facevo una richiesta per vedere se c'era qualcosa di nuovo nel database e quindi inserirlo nel database.

    Questo era molto "scomodo" poichè il client faceva infinite richieste.

    Ho visto altre chat (ad esempio facebook) che non esegue questo gran numero di richieste ma esegue la richieta solamente per prelevare il contenuto del testo una volta che l'altro utente ha scritto, come è possibile?

  2. #2
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Per alleggerire:
    • Non usare il database per una chat!! Salva le informazioni (UNICAMENTE I NUOVI MESSAGGI NON LETTI) nella ram del server
    • Non puoi sapere se sono arrivati nuovi messaggi se non interroghi periodicamente il server. Puoi però fare in modo che la risposta del server sia davvero minimale, ovvero:
      1. { newMsgs: null } se non ci sono nuovi messaggi
      2. { newMsgs: ["messaggio1", "messaggio2", "etc."] } se ci sono nuovi messaggi
    • Una volta letto il nuovo messaggio il server lo cancellerà dalla RAM.


  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500
    Ma scusa, facebook come fa a non fare richieste AJAX?

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da Vicar
    Ma scusa, facebook come fa a non fare richieste AJAX?
    E tu come fai a sapere che non le fa?
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500
    Perchè la console di Firebug non mi rileva chiamate.

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da Vicar
    Perchè la console di Firebug non mi rileva chiamate.
    Forse stai guardando lo strumento sbagliato... la scheda network del mio Chrome non sta ferma un attimo...
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500
    Le richieste che fa non riguardano la chat ma riguardano la sidebar di destra.

    Prova a farti mandare un messaggio da un tuo amico, vedrai che finche il messaggio non viene inviato la richiesta non verrà effettuata.

  8. #8
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    In realtà una soluzione che non faccia uso di chiamate periodiche esiste… ma io non ci ho mai lavorato e fino a poco fa la consideravo altamente sperimentale. In ogni caso…
    http://developer.mozilla.org/en/WebSockets

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    500
    Quindi, se tu dovessi fare una chat, "bombarderesti" di richieste AJAX?
    Scusate se insisto ma sto apprendendo ora e i dubbi è meglio risolverli subito.

  10. #10
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Farei una chiamata ajax ogni 3 secondi. Puoi anche modulare il tempo in base al ritmo della conversazione. Quando la conversazione si fa fiacca puoi spostare il tempo a 8/9 secondi… e viceversa.

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.