Autor Zpráva
Kry5
Profil
Zdravím,
dejme tomu, že mám vytvořenou hru, kam se uživatel přihlásí a pak se může pohybovat po mapě mezi políčkami (každé políčko má své id v MySQL i v html). Po každém pohybu potřebuji přepsat v databázi údaj, který udává, kde se postavička daného uživatele momentálně nachází. Šlo by to udělat ajaxem po každém pohybu, ale to by bylo asi hodně náročné na požadavky na server a zpomalovalo by to uživatele. A tak mě napadlo ukládat to jenom při odchodu ze stránky. Tedy událost onUnload, ale zajímalo by mě to jak to funguje, když uživatel zmáčkne křížek a já začnu odesílat požadavek na ajax. Provede se vůbec? A nakolik je událost onUload spolehlivá? A spouští se předpokládám při odchodu ze souboru a ne při odchodu z webu (pokud jdu odkazem z index.html na nevim.html tak se spustí taky)?

Díky za odpovědi
Yuhů
Profil
spolehlivost neznám, ale doporučuju prostudovat také onbeforeunload
Kry5
Profil
Yuhů:
To by mělo tedy zajistit vykonání i ajaxového požadavku? Což může pár sekund být? Tj. uživatel klikne na křížek a chvíli trvá než se prohlížeč vypne?
Chamurappi
Profil
Reaguji na Kry5:
jak to funguje, když uživatel zmáčkne křížek a já začnu odesílat požadavek na ajax. Provede se vůbec?
Možná. Spolehlivé to určitě nebude.
Také, když si uživatel ukopne napájení počítače, tak se nic nepošle. Nebo když spadne tvá hra do vany plné vody.

spouští se předpokládám při odchodu ze souboru
Ano. Nerozlišuje se, kam z aktuální stránky odcházíš.

Což může pár sekund být?
Na samotné vyslání požadavku nepotřebuješ pár sekund. Přijetí odpovědi trvá… ale tu už zavřené okno nepřijme.


Reaguji na Yuhůa:
Pochybuji, že bude spolehlivější. Navíc (stále) nefunguje v Opeře.
Kry5
Profil
Chamurappi
Je to jenom pokusná webová hra, takže nějaké vykopnutí ze zásuvky uškodí spíše uživatelovi než mě. Bude prostě muset hrát od znova. Mohl bych použít obě události. Opera podporuje alespoň jednu?

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0