2 Stimmen

Javascript/jquery: Aufräumen nach einmal ausgeführten Skript-Tags

Ich habe eine Seite, die die Long-Polling-Technik verwendet, um Daten vom Server in Teilen zurückzubekommen, wobei Skript-Tags mit IIFE-Ausdrücken erstellt werden, die in etwa so aussehen werden:

<script>
  (function(){ 
      $("#blah").append("Some new data");
  })();
</script>

Wenn ich eine MENGE dieser überschüssigen <script> Tags, insbesondere wenn die neuen Daten relativ umfangreich sind, habe ich die Befürchtung, dass die Seite dadurch verlangsamt wird.
Gibt es einen Leistungsvorteil, wenn das Skript-Tag nach seiner Ausführung aus dem DOM entfernt wird?

<script id="thescript">
  (function(){ 
      $("#blah").append("Some new data");
  })();
  $("#thescript").remove();
</script>

EDITAR: Ich habe das Gefühl, dass diese Frage zu einer Katastrophe geworden ist und die Absicht unklar war. Ich bitte um Entschuldigung. Wirklich letztlich auf der Suche nach der Antwort auf eine andere Frage und dies ist ein falscher Schritt auf dem Weg.

2voto

Kevin B Punkte 94073

Sie könnten stattdessen einfach JavaScript zurückgeben und die jQuery-Funktion $.getScript() Methode.

Edita:

Vielleicht wäre dies eine direktere Antwort.

Wenn Sie das Skript als reinen Text anfordern, können Sie es an den Kopf anhängen und entfernen.

$.get(url,function(str){
  var head = $("head"),
      script = $(str);
  head.append(str);
  str.remove();
},"text");

Ich habe das noch nicht ausprobiert, daher bin ich mir nicht zu 100 % sicher, dass es funktioniert. Es klingt aber logisch.

Eine andere Möglichkeit wäre, das Skript in ein bestimmtes Element zu laden und das Element dann zu leeren. Dies sollte den gleichen Effekt haben.

Nochmals bearbeiten: Sie könnten die Skript-Tags in ein bestimmtes Element mit einer Klasse einfügen und dann dieses Element bei Erfolg des Ajax-Aufrufs entfernen, da Sie mehr als nur ein Skript-Tag zurückgeben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X