Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 30

Discussione: Quesito per Chat AJAX

  1. #1

    Quesito per Chat AJAX

    Salve a tutti!

    Avrei una domanda... sto realizzando una Chat AJAX con PHP... Ora, avendo realizzato la parte grafica, avendo predisposto i DataBase MySQL, vorrei sapere, se c'è un modo per evitare la richiesta continua di nuovi Messaggi, ogni TOT secondi, ed, invece fare una cosa del tipo, che il Browser resta in attesa fin quando non ci sono nuovi Messaggi da stampare nel Chat Log.
    Io ho provato con AJAX in modalità sincrona, ma ovviamente si "blocca" il Browser fin quando nn viene "liberata" la richiesta...

    Inoltre vorrei sapere se si può implementare un sistema di Ping per evitare il Timeout da parte del Browser...

    Grazie per le eventuali risposte...
    CrystalSoft | Software House & Web Agency di WinRefine, Mercante in Fiera e altro...
    Annunci Zoo | Annunci gratuiti per il mondo degli Animali
    ElettroMercatino | Annunci a tema Informatico ed Elettronico

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    la richiesta deve partire dal client o dal server: se parte dal client si può temporizzarla (ogni TOT secondi p.es., appunto) o abbinarla ad un evento (l'utente che clicca in qualche box di testo o scrolla la finestra, p.es.) o combinare le due cose (attendi un evento, ma imposti anche un timeout abbastanza ampio nel caso non avvenga nulla); se parte dal server devi usare una tecnica un po' diversa usando ad esempio un gateway sul server (alcune chat sono fatte in flash per sfruttare questa opportunità, ad esempio)

  3. #3
    Dovrebbe partire dal Server... cioé fare in modo che il Browser resti in attesa di nuovi messaggi quindi non ogni TOT secondi, quindi è indiretta la cosa e sarebbe cmq il Client ad aspettare che il Server gli dia un Output... il tutto dovrebbe essere sincrono ma non bloccare la Chat...

    Avevo provato come ripeto in AJAX sincrono e funziona, nella Parte PHP avevo applicato un while che attendesse l'arrivo di nuovi messaggi e qualora ve ne fossero manda l'output al client "sbloccandolo" per poi rimettersi in attesa... ma lo trovo un metodo squallido, e, comunque vi sarebbe quel problema sopra citato...

    Il gateway come funziona? Però non voglio usare Flash
    CrystalSoft | Software House & Web Agency di WinRefine, Mercante in Fiera e altro...
    Annunci Zoo | Annunci gratuiti per il mondo degli Animali
    ElettroMercatino | Annunci a tema Informatico ed Elettronico

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    il gateway fa da "ponte di passaggio" tra i nodi... potresti forse "simularlo" con dei frame fittizzi (un frame di dimensione visibile nulla, eventualmente anche un iframe)... puoi provare a usare una chiamata sincrona dentro un iframe invisibile che al suo "risveglio" passi le informazioni al frame principale via JavaScript

  5. #5
    Soluzione un pò alla grossolana non trovi?

    Non esiste un qualcosa come i Socket? Da usare in modo da avere una cosa botta & rispsota?
    CrystalSoft | Software House & Web Agency di WinRefine, Mercante in Fiera e altro...
    Annunci Zoo | Annunci gratuiti per il mondo degli Animali
    ElettroMercatino | Annunci a tema Informatico ed Elettronico

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Anche se sembra "grossolana" (e concordo che lo è da un punto di vista "generale") in realtà non lo è poi così tanto, nel senso che è tale in una visione globale di soluzioni tecniche, ma se occorre sfruttare solo le tecnologie indicate in pratica è un metodo efficace di gestire il passaggio dei dati sfruttando in pratica la capacità dei browser di gestire pagine "multiple"... inoltre il frame io lo creerei "al volo" via javascript e non inserendolo direttamente nell'HTML... così a occhio non mi pare si possa fare altro.

    So di alcune soluzioni che usano i socket in JavaScript, ma si tratta in realtà di una soluzione "virtuale" perchè in realtà sfrutta un piccolo "swf" come messaggero... a quel punto meglio creare un iframe di servizio. Io proverei... per ora non mi viene in mente altro.

  7. #7
    Ho constatato che comunque sia, anche in un iframe, avviene il blocco della pagina...
    CrystalSoft | Software House & Web Agency di WinRefine, Mercante in Fiera e altro...
    Annunci Zoo | Annunci gratuiti per il mondo degli Animali
    ElettroMercatino | Annunci a tema Informatico ed Elettronico

  8. #8
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012

    Re: Quesito per Chat AJAX

    Originariamente inviato da Emulator ®
    Salve a tutti!

    Avrei una domanda... sto realizzando una Chat AJAX con PHP... Ora, avendo realizzato la parte grafica, avendo predisposto i DataBase MySQL, vorrei sapere, se c'è un modo per evitare la richiesta continua di nuovi Messaggi, ogni TOT secondi, ed, invece fare una cosa del tipo, che il Browser resta in attesa fin quando non ci sono nuovi Messaggi da stampare nel Chat Log.
    Io ho provato con AJAX in modalità sincrona, ma ovviamente si "blocca" il Browser fin quando nn viene "liberata" la richiesta...

    Inoltre vorrei sapere se si può implementare un sistema di Ping per evitare il Timeout da parte del Browser...

    Grazie per le eventuali risposte...
    qual' è il tuo problema? vuoi evitare troppe richieste al database?
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  9. #9
    Non solo quello... voglio anche una cosa fluida... come una Chat vera... e non con stupidi Timer!
    CrystalSoft | Software House & Web Agency di WinRefine, Mercante in Fiera e altro...
    Annunci Zoo | Annunci gratuiti per il mondo degli Animali
    ElettroMercatino | Annunci a tema Informatico ed Elettronico

  10. #10
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    tu in pratica vuoi invertire la meccanica del web, dove le richieste vanno dal client verso il server, per aver un server che istruisce un client....

    se per fluidità intendi caricamenti continui della pagina, con refresh della stessa, allora ci possono essere alcune possibili soluzioni appoggiate ad ajax, che non danno minimamente la percezione che la chat faccia continue richieste al server, viceversa diventa al quanto compromettente a livello di tempo/risorse/risultato.... tutto sta nel chiedersi: il gioco vale la candela?

    poi per il database non c'è problema,riesci a fare una chat che sta su con una query ogni 40 minuti se proprio proprio... bisogna strutturarsi solo bene
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

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.