2016-05-04 8 views
1

Wenn ich mehrere <script> Tags auf die gleiche Javascript-Ressource zeigen, wird der Browser einmal pro <script>-Tag ausgeführt? Oder dekomprimiert der Browser?Ergeben doppelte Skript-Tags mehrere Läufe?

Was passiert in diesem Fall?

<script src="example.js"></script> 
<script src="example.js"></script> 
+0

Nein, ist es nicht Entfernen von Duplikaten. Es ist zweimal enthalten, es liegt an dem enthaltenen Code, sich nicht neu zu definieren. –

Antwort

2

example.js wird für jedes Mal ausgeführt werden, dass sie von einem Script-Tag bezeichnet wird. Der Browser versucht nicht, sie zu duplizieren. (Es kann jedoch nur einmal vom Server angefordert werden.)

Dies gilt auch für die Attribute async und defer.


Wenn aus irgendeinem Grund, Sie doppelte Script-Tags unterstützen wollte, die Code verursachen nur einmal ausführen, könnten Sie eine Technik ähnlich include guards for C.

Zum Beispiel könnte example.js enthalten:

if (window.example === undefined) { 
    window.example = { 
    publicFunction: function publicFunction() { 
     // ... 
    }, 
    // ... 
    }; 
}