|
You last visited: Today at 11:39
Advertisement
Wie am sinnvollsten viele Countdowns berechnen?
Discussion on Wie am sinnvollsten viele Countdowns berechnen? within the Web Development forum part of the Coders Den category.
02/10/2017, 12:15
|
#1
|
elite*gold: 0
Join Date: Dec 2014
Posts: 276
Received Thanks: 84
|
Wie am sinnvollsten viele Countdowns berechnen?
Hallo, epvp'ler.
Ich bin gerade am überlegen wie ich am sinnvollsten viele Cooldown's berechnen lassen kann, ohne das großartig die Server beeinträchtigt werden und der User selbst die Countdowns nicht ändern kann.
Wenn ein User zb eine gewisse Aktion ausführt, dann hat er einen "Cooldown" von 3,5 oder 10minuten (je nach Aktion die er ausführt).
Es werden ja dann, wenn zb 150 User gerade eine Aktion ausführen, 150 verschiedene Cooldowns "berechnet".
Wie kann ich diese "Cooldowns" am sinnvollsten berechnen und anzeigen lassen?
~Barone
|
|
|
02/10/2017, 14:06
|
#2
|
elite*gold: 0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
|
Quote:
Originally Posted by .Barone
Hallo, epvp'ler.
Ich bin gerade am überlegen wie ich am sinnvollsten viele Cooldown's berechnen lassen kann, ohne das großartig die Server beeinträchtigt werden und der User selbst die Countdowns nicht ändern kann.
Wenn ein User zb eine gewisse Aktion ausführt, dann hat er einen "Cooldown" von 3,5 oder 10minuten (je nach Aktion die er ausführt).
Es werden ja dann, wenn zb 150 User gerade eine Aktion ausführen, 150 verschiedene Cooldowns "berechnet".
Wie kann ich diese "Cooldowns" am sinnvollsten berechnen und anzeigen lassen?
~Barone
|
Beim erstellen das Ziel Datum/Uhrzeit in eine Datenbank speichern.
Beim Anzeigen holst du dir einfach das Datum/Uhrzeit berechnest mit Javascript die Differenz und zeigst damit dien Countdown an.
Somit hat dein Server nur die Aufgabe die Uhrzeit in die Datenbank zu schreiben und auszulesen.
|
|
|
02/10/2017, 14:48
|
#3
|
elite*gold: 0
Join Date: Dec 2014
Posts: 276
Received Thanks: 84
|
Das wäre auch mein Vorschlag gewesen. Mein Problem dabei ist, das ich nicht weiß, wie ich dann, wenn der User die Seite verlässt, die restliche Zeit in der Datenbank speichern soll?
|
|
|
02/10/2017, 14:50
|
#4
|
elite*gold: 0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
|
Quote:
Originally Posted by .Barone
Das wäre auch mein Vorschlag gewesen. Mein Problem dabei ist, das ich nicht weiß, wie ich dann, wenn der User die Seite verlässt, die restliche Zeit in der Datenbank speichern soll?
|
Genauer lese 
Du speicherst nicht die restliche Zeit, sondern die Zeit wann der Countdown abgelaufen ist.
Beim Anzeigen berechnest du einfach endzeit - aktuelle zeit und hast dein Countdown
|
|
|
02/10/2017, 14:53
|
#5
|
elite*gold: 0
Join Date: Dec 2014
Posts: 276
Received Thanks: 84
|
Quote:
Originally Posted by .ƒaℓsє.
Genauer lese 
Du speicherst nicht die restliche Zeit, sondern die Zeit wann der Countdown abgelaufen ist.
Beim Anzeigen berechnest du einfach endzeit - aktuelle zeit und hast dein Countdown
|
Bitte erschlag mich! haha.
Okay, alles klar.
Danke dir
|
|
|
02/10/2017, 14:57
|
#6
|
elite*gold: 177
Join Date: Jan 2010
Posts: 5,963
Received Thanks: 1,130
|
Alternativ ginge das ganze sicherlich auch mit JQuery (  )
Da weiß ich nur nicht wie das ganze mit der Manipulation aussieht.
|
|
|
02/10/2017, 15:06
|
#7
|
elite*gold: 0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
|
Quote:
Originally Posted by mastermo
Alternativ ginge das ganze sicherlich auch mit JQuery (  )
Da weiß ich nur nicht wie das ganze mit der Manipulation aussieht.
|
Jquery(Javascript) muss er ja eh verwenden um den Countdown anzuzeigen.
Manipulation ist irrelevant, da auf dem Server geprüft werden muss ob der Countdown abgelaufen ist
|
|
|
02/10/2017, 19:02
|
#8
|
elite*gold: 0
Join Date: Apr 2015
Posts: 428
Received Thanks: 361
|
Quote:
Originally Posted by .ƒaℓsє.
Jquery(Javascript) muss er ja eh verwenden um den Countdown anzuzeigen.
Manipulation ist irrelevant, da auf dem Server geprüft werden muss ob der Countdown abgelaufen ist
|
Besser ist's, wenn er einen Cookie oder einen Storage auf dem Rechner des Benutzers hat, welcher nur nach einem Ablauf des Countdowns ausgelöst wird und er die Angaben nochmals serverseitig zwischenspeichert.
Aber ich denke soweit wolltest du nicht in Detail gehen.
|
|
|
02/10/2017, 19:25
|
#9
|
elite*gold: 0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
|
Quote:
Originally Posted by #Metho
Besser ist's, wenn er einen Cookie oder einen Storage auf dem Rechner des Benutzers hat, welcher nur nach einem Ablauf des Countdowns ausgelöst wird und er die Angaben nochmals serverseitig zwischenspeichert.
Aber ich denke soweit wolltest du nicht in Detail gehen.
|
Natürlich soll der Server nicht jede Sekunde prüfen ob der Countdown abgelaufen ist
|
|
|
02/10/2017, 20:41
|
#10
|
elite*gold: 0
Join Date: Dec 2014
Posts: 276
Received Thanks: 84
|
Natürlich würde ich nicht jede Sekunde überprüfen, ob der countdown abgelaufen ist.
Mein gedanke war dieser :
User klickt auf button, es wird per POST eine ID an eine .php datei gesendet, dadurch wird ein datenbankeintrag mit einem timestamp ( time() + $countdown * 60) gemacht und wenn der User auf der Seite, mit dem Countdown, ist, wird per javascript jede 30. sekunde ein POST request an die selbe .php datei gesendet, um zu überprüfen, ob der countdown wirklich abgelaufen ist.
@Metho
Die Idee mit dem Cookie ist natürlich auch nicht verkehrt.
Die Problematik hier ist, wann dieser ablaufen soll und wie genau ich das anstellen soll.
Theoretisch müsste der Cookie ja nie ablaufen und darf auch nicht gelöscht werden (vom nutzer).
|
|
|
02/10/2017, 21:00
|
#11
|
elite*gold: 0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
|
Quote:
Originally Posted by .Barone
Natürlich würde ich nicht jede Sekunde überprüfen, ob der countdown abgelaufen ist.
Mein gedanke war dieser :
User klickt auf button, es wird per POST eine ID an eine .php datei gesendet, dadurch wird ein datenbankeintrag mit einem timestamp ( time() + $countdown * 60) gemacht und wenn der User auf der Seite, mit dem Countdown, ist, wird per javascript jede 30. sekunde ein POST request an die selbe .php datei gesendet, um zu überprüfen, ob der countdown wirklich abgelaufen ist.
@Metho
Die Idee mit dem Cookie ist natürlich auch nicht verkehrt.
Die Problematik hier ist, wann dieser ablaufen soll und wie genau ich das anstellen soll.
Theoretisch müsste der Cookie ja nie ablaufen und darf auch nicht gelöscht werden (vom nutzer).
|
Fast die richtige Vorgehensweise, du schickst zwar ein POST request (AJAX) weg, jedoch nicht jede 30 Sekunden.
Wieso soll man den Server unnötig belasten wenn man weiß das er nicht jede 30 Sekunden was zu tun hat ?
Im Javascript hast du ja eh den Countdown und weißt somit auch wann dieser abläuft.
Sollt er abläuft schickst du erst ein (POST) Request los.
|
|
|
02/10/2017, 23:45
|
#12
|
elite*gold: 0
Join Date: Apr 2015
Posts: 428
Received Thanks: 361
|
Quote:
Originally Posted by .Barone
@Metho
Die Idee mit dem Cookie ist natürlich auch nicht verkehrt.
Die Problematik hier ist, wann dieser ablaufen soll und wie genau ich das anstellen soll.
Theoretisch müsste der Cookie ja nie ablaufen und darf auch nicht gelöscht werden (vom nutzer).
|
Ich habe dir hier mal eine Vorlage programmiert.
Also du müsstest über PHP einen Cookie setzen:
PHP Code:
$countdown = time() + 1 * 60; // 1 Minute setcookie('cooldown', $countdown, $countdown);
Dann über Javascript müsstest du diesen auslesen:
PHP Code:
function getCookie(cookieName) { var cookieResult, cookieValue;
cookieResult = document.cookie.split(cookieName, 2)[1]; cookieValue = '';
for (var i = 1, l = cookieResult.length; i < l; i++) { if (cookieResult[i] === ';') { break; } cookieValue += cookieResult[i]; }
return cookieValue; }
Den kannst du dann so benutzen:
PHP Code:
var cooldown = Number(getCookie('cooldown'));
Wenn du Number(getCookie('cooldown')); ausliest und dies 0 zurückgibt ist er abgelaufen.
|
|
|
02/11/2017, 00:40
|
#13
|
elite*gold: 0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
|
Quote:
Originally Posted by #Metho
Ich habe dir hier mal eine Vorlage programmiert.
Also du müsstest über PHP einen Cookie setzen:
PHP Code:
$countdown = time() + 1 * 60; // 1 Minute
setcookie('cooldown', $countdown, $countdown);
Dann über Javascript müsstest du diesen auslesen:
PHP Code:
function getCookie(cookieName) {
var cookieResult, cookieValue;
cookieResult = document.cookie.split(cookieName, 2)[1];
cookieValue = '';
for (var i = 1, l = cookieResult.length; i < l; i++) {
if (cookieResult[i] === ';') {
break;
}
cookieValue += cookieResult[i];
}
return cookieValue;
}
Den kannst du dann so benutzen:
PHP Code:
var cooldown = Number(getCookie('cooldown'));
Wenn du Number(getCookie('cooldown')); ausliest und dies 0 zurückgibt ist er abgelaufen.
|
Ich weiß nur nicht ob es wirklich eine so gute Lösung ist.
Da es auch Addons u.a. gibt die Cookies teils verbieten und es auch Probleme mit dem Browser geben Könnte das Cookies gelöscht werden.
Ich würde einfach das Datum als data Attribute (siehe Jquery) o.ä. an den Countdown hängen.
|
|
|
02/11/2017, 18:11
|
#14
|
elite*gold: 0
Join Date: Dec 2014
Posts: 276
Received Thanks: 84
|
Momentan sieht es so aus:
PHP Code:
function CalculateCooldown(cooldown) { var datenow = new Date(); var now = parseInt(datenow.getTime()/1000); var currentcd = cooldown - now; console.log(currentcd); } function CheckCD(){ $.post("../twig/handler/Cooldowns", { check: 'cooldown' }, function (data,status) { data = JSON.parse(data); var cd = data['cooldownend']; setInterval(CalculateCooldown(cd)); }); }
Nun, wie man im versuch sehen kann, würde ich diesen Cooldown gerne runterzählen und dem User in einem container anzeigen.
Jedoch klappt das setInterval so nicht, da ich der funktion CalculateCooldowns ja einen Wert übergebe. Ich kann den Wert, also data['cooldownend'] ja nicht außerhalb des $.post requests nutzen, da es asynchron ist.
Jemand nen vorschlag wie ich das sinnvoll umändern kann?
|
|
|
02/11/2017, 19:20
|
#15
|
elite*gold: 0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
|
Quote:
Originally Posted by .Barone
Momentan sieht es so aus:
PHP Code:
function CalculateCooldown(cooldown) {
var datenow = new Date();
var now = parseInt(datenow.getTime()/1000);
var currentcd = cooldown - now;
console.log(currentcd);
}
function CheckCD(){
$.post("../twig/handler/Cooldowns",
{
check: 'cooldown'
},
function (data,status) {
data = JSON.parse(data);
var cd = data['cooldownend'];
setInterval(CalculateCooldown(cd));
});
}
Nun, wie man im versuch sehen kann, würde ich diesen Cooldown gerne runterzählen und dem User in einem container anzeigen.
Jedoch klappt das setInterval so nicht, da ich der funktion CalculateCooldowns ja einen Wert übergebe. Ich kann den Wert, also data['cooldownend'] ja nicht außerhalb des $.post requests nutzen, da es asynchron ist.
Jemand nen Vorschlag wie ich das sinnvoll umändern kann?
|
Wieso brauchst du ein setInterval ?
Habe dir mal ein simples Beispiel gemacht, dabei habe ich eine beispiel api genutzt die einfach ein String zurückgibt..
Aber sollte zum demonstrieren ja genügen
|
|
|
 |
|
Similar Threads
|
[Java] Welche möglichkeit am Sinnvollsten
01/22/2016 - General Coding - 6 Replies
Hey leute,
möchte für verschiedene Webanwendungen/Programme automatisierungen Schreiben (Bots)
nun weiß ich aber nicht welche möglichkeit ich benutzen soll.
1. Knuddels
Was soll ich dort verwenden?
TCP/Packet Bot, ...andere möglichkeiten
2. OnlineGame (z.B. Die Staemme, Dark Orbit, ... etcpp)
|
MMR berechnen wie ?
08/01/2013 - League of Legends - 12 Replies
Huhu leute. Sorry das ich so ein Thema aufmache aber das ist grad sehr wichtig^^
Und zwar bin ich Silber 5 und habe eine Elo von 1163. Ich weis jetzt nicht was diese Elo zu bedeuten hat. Ist 1163 zu niedrig für Silber 5? Warum bekomm ich nur 5 LP pro win ? Hab immer 4-5 Siege in folge und bekomm so ca 4-6 LP und wenn ich verlier ist die Siegesserie weg mit den Punkten weil ich -20 bekomm. Ich hatte schonmal so ein Thema aber das hat mir nicht geholfen.
Hab 79 Wins 90 Lose also 11...
|
HP MP berechnen
01/07/2012 - Florensia - 5 Replies
Hallo Jungs,
hat jemand eine Idee wie man HP und MP pro Level berechnen kann? Und wieviel HP/MP bringen die Attribute je Level?
Vielleicht lässt sich das auch dem Client oder den Server Paketen lesen?
so long.
// Does anyone have any idea how to calculate HP and MP per level? And how much HP / MP add the attributes at each level?
Perhaps this can be read from the client or server packages?
|
Wie mache ich am sinnvollsten einen SSP+9?
02/22/2011 - Metin2 - 24 Replies
Hallo zusammen,
da ich nun das nötige Level habe, möchte ich mir einen SSP+9 zulegen. Zu kaufen gibt es den aber nicht.
Ich frage mich nun, welcher Weg am sinnvollsten ist.
Das Problem ist, dass nur selten einer +4 zum Verkauf angeboten wird; ich selbst kann die noch nicht droppen. Weiße Perlen gibt es fast gar nicht mehr zu kaufen. Hier mal eine Grobübersicht über die Preise auf meinem Server:
SSP+4.....80-120kk
SS+.....25kk
|
Hex berechnen
05/22/2008 - World of Warcraft - 0 Replies
hi leute, ich habe da mal eine frage. wenn ich mit wpe arbeite, muss ich ja id´s in hex umwandeln um sie dann einzutragen. Da ich WPE oft nutze weiß ich ja wie das alles geht. mein prob liegt aber bei hex unter dem wert 4000. diese haben fasst immer nur 3 hex ziffern.
bsp. Fluch der Torheit - Information - World of Warcraft - WoW Guru
------------------------------------------------- -------------
dez: 1292
hex: 50C
------------------------------------------------- -------------
weil ich...
|
All times are GMT +1. The time now is 11:40.
|
|