• User Attivo

    Notifiche in tempo reale tipo facebook

    Inanzi tutto chiedo al moderatore di spostarmi se non è la sezione corretta.
    Ho questo problema, ho un sito così costituito:
    amministratore ed utente,
    l'utente si registra e l'amministratore attiva il suo account .
    Io vorrei realizzare una cosa che mi permettesse in tempo reale di vedere le notifiche, tipo quella di facebook, per esempio se l'amministratore è online sul sito se un 'utente si registra, in tempo reale gli appare di attivare l'account e cosa analoga per l'utente che se viene attivato il suo account e se lui è online gli appare la notifica.
    Qualcuno mi sa dire dove posso trovare qualche guida?
    Grazie


  • ModSenior

    Ciao angelo85ct,

    devi utilizzare ajax.


  • Super User

    Ciao angelo85ct,
    come suggerito da Thedarkita devi utilizzare la tecnologia Ajax.
    In pratica tecnicamente una funzione javascript richiama (ad esempio checkNotifiche) ad intervalli un file (per esempio .php) che verifica se vi sono nuove notifiche.
    In caso positivo restituisce un testo (xml, testuale, etc...) che viene elaborato dalla funzione javascript checkNotifiche e visualizza il risultato.


  • User Attivo

    @ayrton2001 said:

    Ciao angelo85ct,
    come suggerito da Thedarkita devi utilizzare la tecnologia Ajax.
    In pratica tecnicamente una funzione javascript richiama (ad esempio checkNotifiche) ad intervalli un file (per esempio .php) che verifica se vi sono nuove notifiche.
    In caso positivo restituisce un testo (xml, testuale, etc...) che viene elaborato dalla funzione javascript checkNotifiche e visualizza il risultato.

    Ti ringrazio, non è che per caso sai dove potrei trovare qualche guida? Perche non ho mai fatto una cosa del genere e sarei totalmente bianco.


  • Super User

    Un mio consiglio è utilizzare un framework javascript.
    Io utilizzo jQuery e mi trovo veramente bene.


  • User Attivo

    mi potresti postare qualche link da dove prendere spunto?


  • Super User

    Nel sito jQuery vi sono guide e tutorial. In rete si trova parecchio materiale.


  • User Attivo

    Ho risolto il problema con questo codice:
    [PHP]

    //varia roba dell'head
    <script type="text/javascript">
    <!--
    function getData() {
    if (window.XMLHttpRequest) {
    request = new XMLHttpRequest();
    } else {
    request = new ActiveXObject("Msxml2.XMLHTTP");
    }
    var message= "";

    var url= "tesi2.php";
    if (request) {
    request.open("POST", url);
    request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); //o cmq il charset che usi
    request.onreadystatechange =
    function() {
    if (request.readyState == 4) {

    document.getElementById("tabella").innerHTML = request.responseText;

    }
    }
    request.send(message);
    }
    else
    {
    alert("Il tuo browser obsoleto non supporta ajax.");
    }
    var tempo = setTimeout("getData();",30000); //sono millisecondi, ed indicano la frequenza del refresh
    }
    //-->
    </script>
    <body onLoad="getData();">
    //presentazione etc etc

    <div id="tabella">
    Caricamento in corso...
    </div>
    qui si pu' mettere il resto del testo
    </body>

    </html>
    [/PHP]

    Solo che cosi quello che voglio far apparire mi appare dentro la pagina, qualcuno di voi mi sa dire come dovrei fare per far apparire il tutto dentro una nuvoletta, tipo quella di facebook? se si puo' sempre fare


  • Super User

    Crea la nuvoletta (html, css, immagini) e tramite css imposta:

    
    display:none;
    
    

    nella funzione javascript cambia aggiungi

    
    document.getElementById("**idnuvoletta**").innerHTML = request.responseText;
    **document.getElementById("****idnuvoletta****").style.display="block";**
    
    

    dove idnuvoletta è l'id dato all'elemento.


  • User Attivo

    @ayrton2001 said:

    Crea la nuvoletta (html, css, immagini) e tramite css imposta:

    
    display:none;
    
    

    nella funzione javascript cambia aggiungi

    
    document.getElementById("**idnuvoletta**").innerHTML = request.responseText;
    **document.getElementById("****idnuvoletta****").style.display="block";**
    
    

    dove idnuvoletta è l'id dato all'elemento.

    display:none; dove lo dovrei mettere?


  • Super User

    @angelo85ct said:

    display:none; dove lo dovrei mettere?
    Nel foglio di stile, se lo utilizzi, oppure nell'attributo style di idnuvoletta


  • User Attivo

    ok, ci provo, grazie