Ich habe ein Inhaltsskript auf jeder Seite ausgeführt. Es aktualisiert das HTML der Seite, was auf längeren Seiten mehr Zeit in Anspruch nimmt (das Skript führt das DOM oft durch). Auf längeren Seiten kann das Skript bis zu 10-20 Sekunden dauern, und wenn es zu lange dauert, stoppt Chrome das Skript, weil auf diesen Seiten nur ein Teil der Seite geändert wird.wird ein Content-Skript für eine Chrome-Erweiterung gestoppt, wenn es zu lange dauert, es zu beenden?
Der seltsame Teil ist, dass, wenn ich mehrere Warnungen irgendwo im Code hinzufügen, die Laufzeit in mehrere Teile unterteilt, läuft das Skript völlig in Ordnung und ändert die gesamte Seite. Wenn die Warnung jedoch entfernt wird, wird das Skript erneut vorzeitig beendet und nur ein Teil der Seite wird geändert.
Meine einzige Schlussfolgerung ist, dass Chrome Skripte stoppt, die zu lange laufen, so ist meine Frage - ist das wahr? Und wenn ja - was kann dagegen getan werden? (neben der Verwendung von lästigen Pop-up-Warnungen)
Ich habe eine andere Theorie, das Skript stoppt, weil es irgendwie einen Konflikt gibt, wenn gleichzeitige Befehle versuchen, das DOM zu ändern. Macht das mehr Sinn?
Weitere Details zur Architektur: Die Hintergrundseite erhält eine Nachricht vom Inhaltsskript. Diese Nachricht enthält eine Rückruffunktion (die Funktion, die den HTML-Code tatsächlich ändert). Diese Funktion wird dann relativ zur Seitenlänge mehrmals von der Hintergrundseite aufgerufen. Wenn ich eine Warnung in die Callback-Funktion einfüge, wird jeder Aufruf ohne Probleme ausgeführt. Wenn ich es jedoch entferne, wird nur der erste Aufruf von der Hintergrundseite gemacht, und weitere Aufrufe machen nichts (obwohl der Hintergrundseitencode weiter läuft).
ja ich kenne diese Aufforderungen, sie zeigen aber nicht. es scheint einfach ohne vorherige Ankündigung zu töten. eine Idee warum/wie kann man verhindern, dass es passiert? – Uri
btw es tötet das Skript nicht die ganze Seite. – Uri