Ich habe ein Flash-Spiel, das ich versuche, den Zustand zu speichern, wenn der Benutzer den Browser-Tab schließt. Es wird mit dem folgenden jQuery-Code:Wie wird eine browserübergreifende On-Window-Unload-Anfrage erstellt?
//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: richtig funktioniert
- Chrome: richtig funktioniert, wenn Nachladen aber nicht, wenn Verschlussklappen oder den Browser
- Schließen des IE (alle Versionen): Funktioniert überhaupt nicht
ich wan Es funktioniert in allen Browsern richtig, aber am wichtigsten ist Chrome (nicht viele unserer Benutzer haben IE).
Flash ruft korrekt sendRequest (in allen Browsern, mit einer Warnung getestet), so glaube ich nicht, dass die Probleme von Flash kommen, aber es könnte.
Ich glaube nicht, dass Sie können oder nicht denke ich, dass Sie sich auf .unload verlassen sollten, wenn der Benutzer den Browser schließen will, den sie den Browser schließen möchten. Sollte Ihre Anfrage länger als ein paar ms dauern, um den Speicher zu speichern, sollte der Browser warten? Warum speichern Sie das Spiel nicht auf einen 30-Sekunden-Timer, so dass die längste Zeit 30 Sekunden beträgt. Dann müssen Sie sich keine Sorgen um das Entlade-Ereignis machen. – dstarh
@dstarh: Wir speichern das Spiel bereits auf einem Timer. Dies soll verhindern, dass Spieler die letzten Sekunden der Aktionen verlieren. Oft sind diese letzten Aktionen wichtig. – Fragsworth
Sie sagen also, dass eine Person, die auf das X klickt, um ihr Browserfenster zu schließen, erwartet, dass alles, was sie in den letzten paar Sekunden getan haben, gespeichert werden soll? Ich denke, dass das Trainieren des Benutzers, auf einen Speicherknopf zu klicken und dann den Browser zu schließen, die Zeit besser ausgegeben wird.Wir müssen Benutzer aus der Mentalität von "Ich zog das Stromkabel von der Wand, warum nicht alles außer ???? !!!" – dstarh