Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Chat ajax

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    51

    Chat ajax

    Ciao,
    vorrei sapere una cosa riguardo una questione alquanto complessa. Vorrei creare una chat online piuttosto semplice
    (con un semplice sistema di botta e risposta a cui poi mi occuperò d'implementare le altre cose). Conosco già bene PHP e jquery/javascript.
    L'ajax l'ho utilizzato finora per soluzioni semplici come ad esempio un richiamo jquery di ajax che crea il div di risposta all'invio di un commento
    (come ad esempio un messaggio d'errore o magari un "Commento inviato!"). Ora vorrei capire se è possibile utilizzare l'ajax per creare un sistema di botta e risposta
    veloce del tipo. Io invio il form del messaggio, che verrà processato dalla classe PHP e visualizzato come risultato ajax sullo schermo del pc dell'interlocutore.
    Non so se questa cosa è possibile dato che sarebbe poco sicura. Quale soluzione ci sarebbe da adottare al riguardo? L'ajax permette ciò?
    Ovviamente ad una chat del genere andrebbero fatti i filtri del caso (per evitare che gli utenti si passino messaggi dannosi ) che ovviamente provvederei io a fare.
    Vorrei solo capire la struttura da usare per implementare la mia chat di botta e risposta.
    Ho sentito parlare di DB piuttosto veloci (del tipo che caricano i dati per poco tempo per poi smaltirli), ma tutto sommato non mi sembra necessario che ci sia un db per una semplice stringa/variabile che si fa un giro sul web un secondo.

    P.S.: se lo può fare il PHP e l'ajax non se ne può impicciare mi sposto sezione.

    Grazie.

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Il concetto e': tutti inviano messaggi alla chat (con ajax ma anche no), tutti periodicamente interrogano la chat per vedere se ci sono messaggi nuovi (con ajax ma anche no).

    A meno di non ricorrere ad acrobazie che non tutti i browser supportano, il server non puo' "spingere" alcunche' verso un utente che non ne fa esplicita richiesta (consapevolmente o meno tramite js).

    ciao
    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

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    51
    Capisco che l'ajax come il javascript lavora comunque sugli eventi, cioè l'utente deve far qualcosa per ricevere qualcosa. Ma io vedo molte chat di siti grandi hotmail.it con msn.it, facebook.it e così via che hanno implementato chat in cui viene inserito in ajax (o almeno così sembra dato che la pagina non ricarica) un div aggiuntivo (con al suo interno il messaggio). Queste chat non subiscono ricariche del tipo redirect html (e non sembra nemmeno header PHP). E dopotutto l'ajax con l'invio di un form html può far sì che venga processato uno script php e che questo script inserisca all'interno della pagina (senza ricaricarla) contenuti, utilizzando funzioni di scrittura su schermo come echo o print e così via. Non mi pare che il browser faccia ricariche di alcun tipo ogni tot secondi, non si vedono ricariche ne redirect anche perché probabilmente la memoria è solo dell'ultimo messaggio inserito e quelli precedenti sono solo "stampati sulla pagina" senza una reale memorizzazione. L'invio è instantaneo, come ottengono quest'effetto? Sempre di ajax si dovrebbe trattare. Il php opera lato server e solo grazie all'ajax riesce ad influire su parti di pagine html (lato client).
    Comunque l'ajax "spinge" nella pagina html il contenuto, è qui il dubbio su come possono aver operato.
    La vedo molto bruttina una cosa del tipo che ogni tot secondi viene ricaricata la pagina di chat.

    P.S.: Non sono fatte in flash o in java le chat, andando a vedere il codice è html quello dei messaggi, poi non so se ci sono soluzioni flash java interne invisibili alla pagina, se voi lo sapete ditemelo cortesemente. Anche se non credo sia possibile che un'applet java possa modificare un contenuto html (un contenuto flash poi ovviamente non ci riesce), almeno da quanto ne so io.

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Ho dato per scontato l'uso di ajax... ma se ne puo' pure fare a meno senza necessariamente ricaricare tutta la pagina.

    Per il resto hai illustrato i concetti alla base di ajax... ti manca solo di applicarli.

    Cimentati, se trovi intoppi siamo qui
    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
    Jan 2012
    Messaggi
    51
    Pensando la chat in un altro modo, l'ajax può permettere richieste senza l'invio di post di qualche natura che come hai detto tu, devono essere col consenso dell'utente? Magari c'è qualche altra funzionalità dell'ajax che non conosco che permetta di far girare, ad esempio una query che fa richiesta sul server se ci sono altre messaggi nuovi e aggiorni di conseguenza. Ad esempio, con uno script javascript temporizzo una richiesta ajax che fa girare una query per chiedere se ci sono nuovi messaggi e nel caso li gira inserendoli come farebbe l'ajax ma senza un POST (che è l'unico modo di utilizzare l'ajax che conosco io). Si può fare?

    Credo tu ti stia riferendo ai frame, ma in questo caso non vengono utilizzati (parlando di quei siti citati prima con quelle chattine) dato che viene caricato semplicemente un div in più. Il frame sarebbe una soluzione che trovo poco elegante in quanto ricaricherebbe tutta la pagina coi messaggi (di cui però non vorrei tenerne traccia e che sarei obbligato a fare in caso in una soluzione frame). Una soluzione estremamente più performante sarebbe tenere semplicemente l'ultimo messaggio e gli altri tenerli semplicemente "stampati" sui 2 pc. Dopotutto si tratta di un botta e risposta, nel caso l'utente chiuda il browser ovviamente tutti i messaggi stampati si perderebbero (ma ciò va bene).

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.