Visualizzazione dei risultati da 1 a 1 su 1
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2020
    Messaggi
    1

    "onbeforeunload" e "onunload" non funzionano correttamente

    Ciao a tutti, questo è il mio primo post sul forum, ed è da un po' che non ne uso uno quindi chiedo scusa se ci sono errori di formattazione e altro.

    Ho sviluppato un giochino per me e i miei amici per passare il tempo durante la quarantena. Ho deciso di svilupparlo facendo un server un server scritto in Java - poiché ho molta familiarità con questo linguaggio di programmazione - e un client nel browser scritto in javascript (e html e css).

    Facendola corta, essendo una capra in Web Development, mi sono un po' arrangiato seguendo qualche tutorial e usando praticamente solo il javascript vanilla (senza librerie), apparte jQuery, che uso solo per le richieste al server di gioco. Stavo cercando di fare in modo che quando un giocatore chiude (o ricarica) la pagina viene inviata una richiesta al server per togliere il giocatore dalla pagina. Tuttavia ho cercato di usare "onbeforeunload" e "onunload" senza successo, poiché da quanto ho capito, usando "onunload" su Chrome (e usando quello è un po' un problema) non funziona proprio e "onbeforeunload" non funziona sempre, sempre da quanto ho capito molti browser richiedono un'interazione (non ho capito bene cosa significhi questo) col sito per qualche motivo, penso abbia a che fare con i pop up indesiderati. Fatto sta che, anche "interagendo" con la pagina, "onbeforeunload" funziona poche volte e non fa quello che desidero.

    La soluzione che ho adottato è un controllo che controlla se gli aggiornamenti (vengono richiesti 4 volte al secondo) vengono richiesti sul server ogni due secondi. Questo sistema funziona, ma piuttosto male e fa cilecca parecchi volte.

    Oggi sono tornato sugli eventi ma non sono ancora riuscito a far funzionare il tutto.

    codice:
    window.addEventListener("beforeunload", function (e) {    snd_close(); // invia una richiesta post al server (di tipo POST)
    
        delete e['returnValue']; //rimuove il box di avvertimento.
    });
    questo è quello che ho prodotto fino ad ora, ma continua a non funzionare.
    Come potrei risolvere, o quale metodo potrei usare per ottenere lo stesso risultato?

    Ringrazio in anticipo chiunque abbia qualche risposta perché sto cercando di risolvere da 2 giorni e non mi sta riuscendo al momento.
    Ultima modifica di Mattoz; 16-05-2020 a 16:10

Tag per questa discussione

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 © 2020 vBulletin Solutions, Inc. All rights reserved.