Zuerst gebe ich an, was ich erreichen möchte: Ich hätte gerne einen Code, der über Websockets mit meinem Server verbunden ist. Ich sende Nachrichten an den Browser, um zu sagen, dass sie remote neu laden sollen. Ich möchte, dass dieser Code (abgesehen davon, dass er selbst keine Fehler enthält) nicht von anderen Seitenfehlern betroffen ist, so dass ich die Seite immer noch dynamisch aktualisieren kann, um die Fehler zu beheben.
Wenn bei meinen Tests auf der neuesten Chrome- und iPad-Safari eine Laufzeitausnahme in einem Skript-Tag auftritt, wird diese js-Ausführung angehalten. Jedes andere Javascript in anderen Skript-Tags ist jedoch weiterhin kein Problem. Ist das erwartetes Verhalten, oder habe ich nur Glück? Ich habe TypeError, throw new Error('something')
und undefined Fehler geworfen, und meine anderen Skripte laufen immer noch gut. Ich mache so etwas:
Wenn ich eine Fehlermeldung in mainApp.js
ausspreche, läuft mein Websocket-Code immer noch und aktualisiert die Seite in reloadCode.js
, auch wenn mainApp.js
zuerst ausgewertet wird.
Ok, ich habe gerade selbst einen Test gemacht, um sicher zu gehen (ich glaube nicht, dass separate JS-Dateien sich gegenseitig kompilieren sollten)
Ich habe zuerst eine einfache HTML-Seite erstellt, die 3 JS-Dateien enthielt. Hier sind die JS-Dateien
myscript1.js
%Vor%myscript2.js
%Vor%myscript3.js
%Vor%Html
%Vor%meinscript1 und meinscript3 werden ausgeführt, aber meinscript2 wird wegen eines Fehlers nicht ausgeführt. Solange Ihre reloadCode.js funktioniert, sind Sie dann alle A-OK
Nur um klar zu sein, ich habe nur 2 Warnungen, nicht 3, weil myscript2.js
nicht kompiliert hat.
Tags und Links javascript html runtime-error