entfernen angehängt Skript javascript
wie kann ich Sie entfernen mein Skript angehängt, weil es bewirkt, dass einige Probleme in meiner app.
Dies ist mein code, um mein Skript
var nowDate = new Date().getTime();
var url = val.redirect_uri + "notify.js?nocache=" + nowDate + "&callback=dummy";
var script = document.createElement('script');
script.src = url;
document.body.appendChild(script);
Dann habe ich eine auto-load-Funktion, die Ursachen zu erstellen ein anderes element script.
Ich loswerden wollen von dem vorherigen element, das Hinzugefügt wurde, bevor ein weiteres element hinzu.
Einfach Einstellung
bedeutet das entfernen alle meine Skripte? Oder nur das Skript angehängt?
Naja, Nicht das hinzufügen des Skripts wieder klingt wie eine bessere Idee, dann entfernen Sie es...
Warum?! So könnte man es entfernen, rechts danach...???
Ich benutze diese für einen JSONP-Aufruf hinzufügen muss-Skript wegen der Rückrufe.
script.src='';
oder entfernen von Skript-Knoten: script.removeNode(true);
.bedeutet das entfernen alle meine Skripte? Oder nur das Skript angehängt?
Naja, Nicht das hinzufügen des Skripts wieder klingt wie eine bessere Idee, dann entfernen Sie es...
Warum?! So könnte man es entfernen, rechts danach...???
Ich benutze diese für einen JSONP-Aufruf hinzufügen muss-Skript wegen der Rückrufe.
InformationsquelleAutor Robin Carlo Catacutan | 2012-02-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich einige weitere tests, und vor bekommst du eine korrekte Antwort zu deiner Frage (hoffe es ist eine) Sie können versuchen, diese:
Dies ist nur ein test-code, aber es enthält auch eine Idee, wie Sie möglich das problem lösen könnte. Es entfernt
<sript>
aus dem DOM, und die Letzte Zeile zerstört alle Funktionen des Skripts.(Der code hat auch ein kleines detail, was zeigt, dass
setTimeout
tuneval()
, egal wie man es begründet...?)setInterval
s für immer...InformationsquelleAutor Teemu
Grundsätzlich können Sie entfernen von Skript-tag mit Hilfe einer Funktion wie diese:
Hinweis, es verwenden filename-parameter zu identifizieren, die Ziel-Skript zu entfernen. Bitte beachten Sie auch, dass die target-script könnte schon ausgeführt an der Zeit, die Sie versuchen, es zu entfernen.
Wie ich bereits in meinem Beitrag - dies ist das erwartete Verhalten in dem Fall, wenn Sie versuchen, um es zu entfernen, nachdem es ausgeführt wurde. Sie müssen aufhören, es durch die Verwendung von javascript und entfernen Sie dann.
Ja, du hast Recht. Das, was ich gesucht habe, so weit ist, dass es die genannte Speicherlecks.
InformationsquelleAutor Pavel Podlipensky
Ich würde einfach schauen, um zu sehen, wenn Sie ' ve bereits Hinzugefügt, das Skript. Hinzufügen und entfernen fügt eine unnötige Komplexität. So etwas wie dies funktionieren sollte:
Wie der OP sagt code aktualisiert jede minute, ich glaube die variable scriptAdded wird falsch ankommen.
Vielleicht ist das Skript Hinzugefügt von OP ist ein JSONP-Aufruf?
das Teil verwirrt mich ein wenig, als gut. Ich nahm an, es war eine Art AJAX-refresh seit der OP auch angegeben, dass Sie immer 30 Instanzen des Skripts ergänzt (eine pro refresh). Es sei denn, Sie poste mehr code, ich bleibe bei meiner ursprünglichen Antwort 🙂
Ja, es ist ein JSONP-Aufruf. Ich denke, dass dies nicht mein problem lösen.
InformationsquelleAutor James Hill
Was Sie tun können, ist, das Skript sofort zu entfernen, nachdem es geladen wurde:
Ja, ich denke, es ist eine bessere Idee to fügen Sie den Skript in den header (da wo die anderen scripts befinden) als der Körper.
InformationsquelleAutor heinob
Bei JSONP und Ihre Nutzung von jQuery, warum nicht nehmen Sie den vollen Vorteil von jQuery JSONP-laden-Einrichtungen, die die post-clean-up für Sie? Laden von JSONP-Ressource wie dieses, nicht verlassen eine Spur in den DOM:
Den
<script>
tag zum laden wird sofort entfernt, sobald es geladen ist. Wenn der laden ein Erfolg wird. Auf der anderen Seite, fehlgeschlagene Anfragen bekommen nicht automatisch gelöscht, und Sie haben zu tun, dass Sie sich mit so etwas wie dieses:genannt zur richtigen Zeit. Es entfernt alle ausstehenden JSONP
<script>
tags.Verstanden. Denke immer noch, können Sie die Zeile entfernen, um loszuwerden, Ihre bisherigen
<script>
wenn du als Ziel hast, es zu suchen "notify.js" in der src so:$('head script[src*="notify.js"]').remove();
Es bekam. tnx Männer!
InformationsquelleAutor Petr Vostrel
Gut,
Ich habe das gleiche Bedürfnis, weil der ajax-Aufrufe ausgelöst durch Ereignis.
Einige anrufen die frühesten können später zurückkehren, dann überschreiben Dokument
bevölkert von den letzten Aufruf.
removeChild(scriptEl)
funktioniert nicht. Ändern
src
- Attribut nicht funktioniert entweder.Wenn
jsonp
ist Ihre einzige Auswegund wenn Sie die Kontrolle über die server-Antwort,
Sie können lassen Sie diese angehängt sind, zu unterscheiden Rückkehr auf den Rückruf.
Nur pass ein
timestamp
parameter, dann überprüfen Sie es auf die callback -Montieren Sie das Ergebnis der server
notify.js
entsprechend:Auf diese Weise müssen Sie nur ein script-element wie das mit
parametrische id
InformationsquelleAutor user2432789
einfachste Weg.
InformationsquelleAutor nonuser
InformationsquelleAutor akshay anand