wert wird nicht gespeichert

Wampo

Mitglied
Hy zusammen,

warum wird der wert likersbefore nicht übernommen bzw. gespeichert.
Das problem ist, ich gebe den alten Zählerstand an likersbefore und wenn der nächste durchlauf kommt dann ist likersbefore wieder bei 0 bzw undefined.

Kenne das von C halt so das dann der neue Wert der alte ist und damit man zum vorherigen Wert vergleichen ob dieser größer oder kleiner geworden ist und genau das will ich hier auch machen?
Code:
(function Facebooklike(){
     $.ajax({
       url:likeURL,
       dataType: "json"
     }).done(function(data) {
         $.each(data.data, function() {
         var likers = parseInt(this.total_count);
         var likersbefore;
        
       if (likers < likersbefore){
         $("#Likes").updateWithText('<span class="fa fa-thumbs-down"></span>' + 'Spotted:Dorfen ' + likers + ' and before ' + likersbefore, 2000);
         likersbefore = likers;
       }
       $("#Likes").updateWithText('<span class="fa fa-thumbs-up"></span>' + 'Spotted:Dorfen ' + likers + ' and before ' + likersbefore, 2000);
       likersbefore = likers;
       return false;
       });
     });
     setTimeout(function() {
       Facebooklike();
     }, 15000);
   })();
 
Zuletzt bearbeitet:

mrBrown

Super-Moderator
Mitarbeiter
likersbefore ist eine lokale Variable, wird also mit jedem Aufruf der enthaltenden Funktion neu erstellt (und mit 0 initialisiert).

C verhält sich da nicht anders (abgesehen von static), genau wie die meisten (alle?) anderen Sprachen...

Damit der Wert gleich bleibt, musst du likersbefore außerhalb einer Funktion deklarieren.
 

Wampo

Mitglied
Okay, das hab ich jetzt übersehen.

Bin bei Java recht neu, wo genau müsste ich denn dann var likersbefore hin stellen damit nur die Variable deklariert ist und nicht immer wieder genullt wird?

Einfach ganz oben drüber?!

Code:
 var likersbefore;
(function Facebooklike(){
     $.ajax({
       url:likeURL,
       dataType: "json"
     }).done(function(data) {
         $.each(data.data, function() {
         var likers = parseInt(this.total_count);
       
       
       if (likers < likersbefore){
         $("#Likes").updateWithText('<span class="fa fa-thumbs-down"></span>' + 'Spotted:Dorfen ' + likers + ' and before ' + likersbefore, 2000);
         likersbefore = likers;
       }
       $("#Likes").updateWithText('<span class="fa fa-thumbs-up"></span>' + 'Spotted:Dorfen ' + likers + ' and before ' + likersbefore, 2000);
       likersbefore = likers;
       return false;
       });
     });
     setTimeout(function() {
       Facebooklike();
     }, 15000);
   })();
 

Wampo

Mitglied
Werds mal probieren.

Sorry, fuchse mich gerade in HTML, PHP, CSS, Phyton und JavaScript rein und zu guter letzt noch in LINUX Raspbian :eek::rolleyes:

Hab vorher viel mit C gecodet und jetzt ist da dieser Raspberry Pi.... :D
 

Thallius

Top Contributor
Vielleicht solltest du dich erstmal mit einfacheren Dingen befassen und nicht gleich mit AJAX und Blockcode um Dich werfen, der dich anscheinend klar überfordert.

Und wie bereits gesagt, Javascript unterscheidet sich nicht groß von C und wenn Du da tatsächlich schon richtig "gecodet" hast, sollte dich so etwas nicht vor ein Problem stellen.
 

Wampo

Mitglied
Und wenn ich nicht will, weil ich iwie immer ans Ziel komm und dabei Lerne!?

Aber danke für dein Tollen Kommentar, "Dad"....

P.s: ich glaub deine Katze muss mal Gassi....:p
 

Ähnliche Java Themen

Neue Themen


Oben