Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 11:39

  • Please register to post and access all features, it's quick, easy and FREE!

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.

Reply
 
Old   #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
.Barone is offline  
Old 02/10/2017, 14:06   #2


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
Quote:
Originally Posted by .Barone View Post
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.
False is offline  
Thanks
1 User
Old 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?
.Barone is offline  
Old 02/10/2017, 14:50   #4


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
Quote:
Originally Posted by .Barone View Post
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
False is offline  
Thanks
2 Users
Old 02/10/2017, 14:53   #5
 
elite*gold: 0
Join Date: Dec 2014
Posts: 276
Received Thanks: 84
Quote:
Originally Posted by .ƒaℓsє. View Post
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
.Barone is offline  
Old 02/10/2017, 14:57   #6
 
mastermo's Avatar
 
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.
mastermo is offline  
Old 02/10/2017, 15:06   #7


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
Quote:
Originally Posted by mastermo View Post
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
False is offline  
Thanks
1 User
Old 02/10/2017, 19:02   #8
 
elite*gold: 0
Join Date: Apr 2015
Posts: 428
Received Thanks: 361
Quote:
Originally Posted by .ƒaℓsє. View Post
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.
#Metho is offline  
Old 02/10/2017, 19:25   #9


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
Quote:
Originally Posted by #Metho View Post
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
False is offline  
Old 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).
.Barone is offline  
Old 02/10/2017, 21:00   #11


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
Quote:
Originally Posted by .Barone View Post
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.
False is offline  
Thanks
1 User
Old 02/10/2017, 23:45   #12
 
elite*gold: 0
Join Date: Apr 2015
Posts: 428
Received Thanks: 361
Quote:
Originally Posted by .Barone View Post
@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() + 60// 1 Minute
setcookie('cooldown'$countdown$countdown); 
Dann über Javascript müsstest du diesen auslesen:

PHP Code:
function getCookie(cookieName) {
    var 
cookieResultcookieValue;

    
cookieResult document.cookie.split(cookieName2)[1];
    
cookieValue '';

    for (var 
1cookieResult.lengthli++) {
        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.
#Metho is offline  
Old 02/11/2017, 00:40   #13


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
Quote:
Originally Posted by #Metho View Post
Ich habe dir hier mal eine Vorlage programmiert.

Also du müsstest über PHP einen Cookie setzen:

PHP Code:
$countdown time() + 60// 1 Minute
setcookie('cooldown'$countdown$countdown); 
Dann über Javascript müsstest du diesen auslesen:

PHP Code:
function getCookie(cookieName) {
    var 
cookieResultcookieValue;

    
cookieResult document.cookie.split(cookieName2)[1];
    
cookieValue '';

    for (var 
1cookieResult.lengthli++) {
        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.
False is offline  
Old 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?
.Barone is offline  
Old 02/11/2017, 19:20   #15


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
Quote:
Originally Posted by .Barone View Post
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

False is offline  
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.