Ho un gioco Flash che sto cercando di salvare lo stato di quando l'utente chiude la scheda del browser. Sta usando il seguente codice jQuery:Come effettuare una richiesta di scaricamento su finestra-cross-browser?
//Called from Flash when window closes
function sendRequest(url, params) {
$.ajax({
type: "POST",
async: false,
url: url,
data: params
})
}
$(window).unload(function() {
//Make Flash attempt to save the game when the window closes.
//Flash gets the necessary data and calls sendRequest()
document["flashGame"].saveBeforeUnload();
});
- Firefox: funziona correttamente
- Chrome: funziona correttamente quando ricaricare ma non quando linguette di chiusura o la chiusura del browser
- IE (tutte le versioni): non funziona affatto
I wan t per funzionare correttamente in tutti i browser, ma la cosa più importante è Chrome (non molti dei nostri utenti hanno IE).
Flash chiama correttamente sendRequest (in tutti i browser, testato con un avviso), quindi non credo che i problemi vengano da Flash, ma potrebbe.
Non penso che tu possa o credo che dovresti fare affidamento su .load, se l'utente vuole chiudere il browser, vuole chiudere il browser. Se la tua richiesta richiede più tempo di alcuni ms per eseguire il salvataggio, il browser dovrebbe attendere? Perché non salvare il gioco su un timer di 30 secondi in modo che il più lungo sarà fuori è di 30 secondi, quindi non devi preoccuparti per l'evento di scarico – dstarh
@dstarh: Abbiamo già salvare il gioco su un timer. Lo scopo di questo è impedire ai giocatori di perdere quegli ultimi secondi di azioni. Spesso quelle ultime azioni sono importanti. – Fragsworth
quindi stai dicendo che una persona che fa clic sulla X per chiudere la finestra del browser dovrebbe aspettarsi che tutto ciò che hanno fatto negli ultimi secondi debba essere salvato? Penso che addestrare l'utente a fare clic su un pulsante di salvataggio e quindi chiudere il browser sia il tempo trascorso meglio.Dobbiamo eliminare gli utenti dalla mentalità di "Ho tirato il cavo di alimentazione dal muro, perché non è stato salvato tutto ???? !!! ???" – dstarh