Javascript, der einmal Code ausführt

7

Ich möchte nur, dass mein JavaScript einmal ausgeführt wird, aber Ich kann nicht kontrollieren, wie oft die JavaScript-Datei ausgeführt wird. Im Grunde schreibe ich ein winziges JS-Snippet in ein CMS und das CMS ruft es tatsächlich 5-10 mal an. Also Lösungen wie diese:

%Vor%

Scheint nicht zu funktionieren, denn sobald mein Snippet wieder von oben gestartet wird, wird die Funktion neu deklariert und "tue some stuff" wird neu bewertet. Vielleicht mache ich es einfach nicht richtig, ich bin nicht großartig mit JS. Ich überlege, etwas wie try-catch für eine globale Variable zu verwenden, etwas wie

%Vor%

EDIT: Es gibt einen konsistenten Zustand, z.B. Wenn ich eine Variable setze, kann ich sehen, wenn mein Snippet erneut ausgeführt wird. Aber ich muss es deklarieren, bevor ich darauf zugreife, ich weiß nicht, wie ich sagen soll: "Gibt es diese Variable schon?"

    
Hamy 23.01.2013, 00:29
quelle

4 Antworten

17

Versuchen Sie Folgendes:

%Vor%

Redundante Variablendeklarationen wirken sich nicht auf den Wert der Variablen aus. Sobald eine der Funktionen die Variable auf true gesetzt hat, werden die anderen nichts mehr tun.

    
Pointy 23.01.2013, 00:37
quelle
3
%Vor%

Der typeof Check bringt Sie um die Tatsache herum, dass das globale nicht deklariert wurde. Sie könnten auch if (!window.code_happened) ausführen, da der Eigenschaftszugriff für nicht definierte Eigenschaften nicht gesperrt ist.

    
Mike Samuel 23.01.2013 00:42
quelle
2

Benutze einen Verschluss und setze eine Flagge. Wenn das Flag true ist, gib einfach zurück:

%Vor%

Hier ist die Geige: Ссылка

    
Joseph Silber 23.01.2013 00:32
quelle
2

Mit jQuery kann die Funktion .one () nützlich sein: Ссылка

W3School Beispiel hier: Ссылка

    
GtAntoine 24.12.2015 08:20
quelle

Tags und Links