![]() |
Hjälp med AJAX och PHP
Det jag skall göra är ett energi regeneration skript(till ett spel)
På en sida så har jag ett javaskript som körs vis ett visst intervall. Ungefär såhär: setTimeOut("addEnergy()", 5000); som körs var femte sekund. Det addEnergy gör är att den gör ett AJAX anrop till en PHP sida som plussar på att värde som redan finns i databasen. Alltså man får mer energi. Detta funkar endast om man är på den sidan. Men om jag stänger ner webbläsaren och går iväg en stund så vill jag att det inte skall sluta att fyllas på. Hur kan man åstadkomma det? |
Sök på "cron job" ;-)
|
Nej, det är inte det jag är ute efter.
|
Vill du inte köra det med cron job kan du ju kolla klockslag sedan man sist var inne och plussa på. Funkar ju det med. Men är inte webbläsaren öppen måste det ju antingen ske på serversidan med t.ex cron job eller uppdateras/kompenseras när man kommer tillbaka till sidan.
|
Det är det jag tänkt göra när man öppnar skriptet igen
då kollar man liksom. Men om vi säger såhär att man får 20 energi / timme och det är ju alltså 1 energi var 180 sekund. Då kan man väl kolla hur många 180 sekunder som fått plats i tiden mellan det sista inlagda energi och tiden som är nu. Resten av det ver jag inte var det skall ta vägen eftersom ja vill inte att man ska förlora ngn tid på det. Förstår du nu? :) |
Kör en koll på hur många gånger 180 sek har förlutit. Gör jämnt tal av det. Ta bort 180 gånger det jämna talet och lämna kvar det som blev "över". Så förlorar man ju inget.
|
Vänta, nu förstår jag inte riktigt? Berätta om det där :)
|
hmm, inte så smart mitt förra förslag... Det smartaste är om du bara kör på att spara och tänka sekunder. Sen när du via javascript hos klienten skall visa poängen så ta sekunder/180. Då blir det enklare och mer precist.
|
Men man skall kunna öka sin rate. Man kan få 3600 energi / timme också :D. Då funkar det väl inte?
|
Du kan ju t.ex spara sekunderna i olika fält beroende på vad sekunderna är värda. Räkna sen ihop dem efter antal*värde och skicka tillbaka till klienten. Finns ju en massa vägar att gå... Men att använda en timestamp/Unix är väl det smidigaste antar jag. Allt beror på vad du vill åstadkomma och är ju en aning svårt att veta alla scenarior du har tänkt dig :)
|
Alla tider är GMT +2. Klockan är nu 10:26. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson