Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Utenti realmente online(anche se chiudono il browser)...la mia soluzione!

    Un problema che spesso si presenta, quando si vuole tenere sotto controllo il numero di utenti online sul proprio sito, è rilevare se l'utente è uscito dal nostro sito chiudendo direttamente il Browser.
    Non esiste infatti un modo per rilevare l'evento che l'utente abbia abbandonato il nostro sito portandosi su un altro sito, oppure che l'utente sia uscito chiudendo direttamente il Browser.

    Vi presento quindi una soluzione a questo problema, realizzata con ASP ed Ajax.

    Ovviamente aspetto critiche e migliorie allo script!

    La mia soluzione è abbastanza semplice, e vi illustro la teoria, per la pratica vi rimando al mio blog (appena creato...e dove ho poco tempo per scrivere), che contiene anche lo zip con l'esempio.

    Ho risolto il problema semplicemente con un approccio inverso: perché devo rilevare io quando l'utente chiude il browser..o esce dal sito...o altro?? Faccio uno script, che viene lanciato con Ajax, quindi con una richiesta asincrona al server, e che l'utente non vede neanche, tramite il quale l'utente mi segnala di essere ancora presente.

    Quindi inizialmente l'utente quando accede segnala l'ora (a me serve solo il minuto) di entrata nel sito, e poi, ad un intervallo stabilito da me, aggiorna la sua presenza sul sito. Quando l'utente non aggiorna la sua presenza, perché è uscito, lo script che controlla il numero di utenti, lo elimina dal mio elenco degli utenti online.

    Semplice!

    Cmq, vi rimando al blog per la spiegazione più approfondita e per le pagine di esempio:

    Blog di alessio_1976

    Spero possa esservi utile!

  2. #2
    Utente di HTML.it L'avatar di barney09
    Registrato dal
    Dec 2000
    Messaggi
    1,296
    Io avevo pensato e suggerito ad un utente che lato server si possono gestire 2 array, uno con gli utenti, e l'altro con l'ora di ingresso, il tutto gestito tramite variabili application.


    Es.

    Luca, Mario, Giorgio

    12:00, 12:12, 12:45



    Ogni volta che c'è un nuovo utente si aggiunge all'application degli utenti il nome utente e a quella dell'ora l'ora in cui ha caricato la singola pagina.



    Ad ogni refresh di pagina si analizza l'array delle ore e si toglie tutti quelli con ora < di MINUTISTABILITI sia dall'array delle ore sia da quello dei nomi utente.

  3. #3
    Utente di HTML.it L'avatar di barney09
    Registrato dal
    Dec 2000
    Messaggi
    1,296
    si tratta di una soluzione molto piu' grezza, e che non monitora l'utente in ogni istante, ma lo "presume" connesso se negli ultimi X minuti è stato sulla pagina in questione.

    Ho dato un occhiata al tuo sistema che risulta assai piu' raffinato e preciso. Hai fatto un buon lavoro, complimenti.

  4. #4
    Ti ringrazio barney09....
    effettivamente il mio primo tentativo era stato esattamente come dicevi tu, con i due array paralleli, ma poi ho trovato qualche difficolta nel mio caso, dove dovevo anche creare un tot di application che individuano gli utenti all'interno di specifiche aree del sito, e ho trovato alcune difficoltà, per cui alla fine ho trovato l'equilibrio con questa soluzione.

    L'importante è che sia utile per chi deve fare qualcosa del genere.

  5. #5
    Utente di HTML.it L'avatar di barney09
    Registrato dal
    Dec 2000
    Messaggi
    1,296
    certamente, la tua soluzione è ottima.

    Come mai hai creato un codice a 20 caratteri anzichè usare la session_ID?

  6. #6
    Ma no...ho usato la sessionID..!!???..che poi solo per l'esempio generale...in realtà, nel sito dove utilizzo lo script, uso l'id dell'utente

  7. #7
    Utente di HTML.it L'avatar di barney09
    Registrato dal
    Dec 2000
    Messaggi
    1,296
    allora ho letto male io ero di corsa, appena ho un attimo me lo guardo con calma.

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.