Ich habe 2 Seiten, beide enthalten global.js, die über globale Funktion hat. Ich muss global() an beiden Orten aus bestimmten Gründen ausführen, wie kann ich verhindern, dass es zweimal ausgelöst wird? Wie Seite 1 ist Layout, es wird immer global() zuerst ausgeführt. Also, wenn global bereits ausgelöst wird, triggern Sie es nicht erneut, wenn ich Seite 2 besuche. Seite 3,4,5 usw. wird global() des Layouts ausgeführt, so dass es nicht kollidiert. Mein Anliegen ist die 2. Seite.vermeiden Sie Funktion, zweimal zu schießen
Antwort
Solange Ihre JS-Datei nur einmal geladen wird, können Sie folgendes tun:
Sie eine Eigenschaft auf die Funktion zuweisen können, wie Sie es mit einem Objekt würde. Im folgenden Beispiel füge ich eine Eigenschaft executed
mit einem Standardwert false
hinzu. executed
wird auf true
gesetzt, wenn der Inhalt der Funktion ausgeführt wird. Wenn die Funktion das nächste Mal aufgerufen wird, stellt die if
-Anweisung sicher, dass die Funktion sofort zurückkehrt.
function global() {
if (global.executed) {
return;
}
global.executed = true;
// your code here ...
}
global.executed = false;
Wenn jedoch beiden Seiten unabhängig voneinander die JS-Datei zu laden, müssen Sie sich erinnern, wenn die Funktion irgendwo statisch genannt wird, zum Beispiel in localStorage
, in einem Cookie oder auf dem Server.
Macht jetzt Sinn. Vielen Dank. –
- 1. Scala So vermeiden Sie, die Datei zweimal zu lesen
- 2. Fenster Größe nicht schießen
- 3. MYSQL vermeiden, dieselbe Zeile zweimal einzufügen
- 4. NSTimer nicht schießen propery
- 5. mysql Vermeiden Sie die Anzeige Ergebnisse zweimal von 2 Bedingungen
- 6. Vermeiden Sie "Update" zu verwenden?
- 7. Highchart Formatierung Funktion zweimal zweimal ausgeführt
- 8. Gun Schießen auf Unity5
- 9. Vermeiden Sie SetTimeout in Ajax Callback-Funktion
- 10. Kann Funktion zweimal aufrufen?
- 11. Vermeiden Sie Jquery Self-Calling-Funktion
- 12. onBeforeRendering Funktion läuft zweimal
- 13. Vermeiden Sie, die Tabelle zweimal in der WHERE-Klausel zu referenzieren.
- 14. Label Brände klicken Funktion zweimal
- 15. Funktion E-Mail zweimal senden
- 16. getItem-Methode in Viewpager zweimal aufgerufen. So vermeiden Sie den zweiten Aufruf
- 17. C# Versuchen, Duplikate zu vermeiden
- 18. Ballons schießen und maximale Punkte sammeln
- 19. Klicken Sie zweimal auf die Schaltfläche, um die Funktion auszuführen
- 20. wie die Umleitung in einer JavaScript-Funktion zu vermeiden
- 21. Vermeiden Sie die Verknüpfung zu libstdC++
- 22. jquery: vermeiden Sie zu viel Rekursion
- 23. Scala - vermeiden Sie zu komplexe geschachtelte Mustererkennung
- 24. Vermeiden Sie Push-Duplikate zu localStorage
- 25. Warum schießen meine Ansible-Handler nicht?
- 26. Java-Spiel-Programm: Schießen der Rakete
- 27. Vermeiden Sie es, die Funktion mehr als einmal auszuführen
- 28. Split-Funktion - vermeiden Sie den letzten freien Platz
- 29. Vermeiden Sie doppelte Einträge auf Mongoose-Array
- 30. Hot zu vermeiden alle Leistungen in Bootstrap-Deklaration() Funktion
Ich sehe das nicht als Bedenken, wie die Seite neu geladen wird, alle Ihre Skripte tun so keine Frage zweimal zu feuern. Zeig uns was du schon gemacht hast? –
Wenn die Seiten unabhängig voneinander geladen werden, warum sollten Sie besorgt sein, dass 'global()' zweimal ausgelöst wird? Andernfalls können Sie den Aufruf der Funktion auf Seite 2 an erster Stelle verhindern. – Terry
@AkshayKhandelwal Ich habe 2 js Datei, eine ist Layout, eine ist seine Kinder. Ich muss global() in beiden Dateien ausführen. –