Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    Problema con ajax, inviare parametri ad altri utenti

    Salve a tutti, volevo sapere come posso far visualizzare i messaggi che ho inviato ad un altro utente, i miei messaggi li potrei inserire in un contenitore fatto con javascript, ma poi come faccio ad inviarli all'altro utente? ho provato con setintervall ogni secondo esegue una funzione che mi stampa i messaggi in un div, però se quest'ultimi si trovano nel database, invece vorrei che all'invio del messaggio, si avvii una funzione setTimeout sia a me che all'altro utente

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Non puoi farlo con ajax perché esegue il cambiamento mostrando solo sul tuo browser (client), per far vedere a tutti quelli collegati al sito il cambiamento devi impostare un refresh/reload automatico nella pagina <meta http-equiv="refresh" content="1" />
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Se imposti un setTimeout ricorsivo (non un setInterval, che in caso di rallentamento della rete combina un casino!) impostato su 3 secondi, quando mandi un messaggio l'utente lo riceverà entro 3 secondi. Il tutto con ajax.

  4. #4
    in pratica il settimeout comunque deve caricare una pagina ogni 3 secondi, invece vorrei che all'invio di un messaggio si avvii la funzione settimeout anche all'altro utente, ma solo se clicco su invio

  5. #5
    in pratica il settimeout comunque deve caricare una pagina ogni 3 secondi, invece vorrei che all'invio di un messaggio si avvii la funzione settimeout anche all'altro utente, ma solo se clicco su invio

  6. #6
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Originariamente inviato da carlomary20
    in pratica il settimeout comunque deve caricare una pagina ogni 3 secondi, invece vorrei che all'invio di un messaggio si avvii la funzione settimeout anche all'altro utente, ma solo se clicco su invio
    Mi spiace ma questo non si può proprio fare in nessun modo. Puoi fare in modo però che la pagina che viene caricata ogni 3 secondi sia davvero minimale. Ovvero con solo i nuovi messaggi in formato JSON (pochi bytes) oppure VUOTA se non ci sono nuovi messaggi. Ajax caricherà una pagina impostata così: tuaPagina.php?dataUltimoControllo=UNADATA. In questo modo php saprà come mandare gli ultimi messaggi solamente.

  7. #7
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Ah dimenticavo! Questo è un tipico caso in cui conviene creare un Worker (qui hai tutta la documentazione che ti occorre: https://developer.mozilla.org/En/Usi..._from_a_Worker)

  8. #8
    Buongiorno a tutti, forse ho trovato un modo, ma mi serve il vostro aiuto sempre se è possibile, in pratica se utilizziamo setInterval ogni 2 secondi, ed esegue uno script php che mi visualizza gli ultimi messaggi scritti dei due utenti in questione, se ci sono nuovi messaggi allora utilizziamo setTimeout per stampare i nuovi messaggi, altrimenti no, ovvio che all'inizio avviamo la funzione setTimeout per stampare i messaggi scritti; se fosse possibile fare questo sto a cavallo

  9. #9
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Io t'ho perso, comunque quando l'utente accede/scarica la pagina inizialmente (primo accesso alla pagina in questione) se non inserisci un script/meta-tag fisicamente nella pagina stessa che regolarmente "interroghi" il server la stessa (cioè la pagina) non saprà mai che ci sono stati dei cambiamenti sul server.
    Un po come accade qui sul forum se adesso io ti mandassi un mp (messaggio privato) l'avviso non sarebbe in tempo reale ma solo al cambio pagina o al refresh/reload della pagina di dove ti trovi in quel momento (facendo una nuova richiesta al server dei dati caricheresti anche l'avviso).
    Mentre tu vorresti (se ho capito bene) una specie di avviso tipo msn/skype etc... ma per fare ciò devi far istallare un programma sul pc ad ogni utente del sito (come fanno detti servizi)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  10. #10
    Potresti usare le websocket.
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

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.