Ich habe ein paar Probleme bei Ссылка mit JavaScript gelöst. Ich habe eine einfache HTML-Seite verwendet und meinen Code in Skript-Tags ausgeführt, damit ich meine Ergebnisse in der Browserkonsole protokollieren kann. Beim Experimentieren mit Loops kann der Browser manchmal abstürzen.
Gibt es für mich eine bessere Umgebung für diese Art der Entwicklung?
Wenn Sie in Ihrem Browser rechenintensive Programme ausführen, sollten Sie sich Web-Worker ansehen. Kurz gesagt, erlauben sie Ihnen, Code in einem anderen Thread auszuführen, der den Browser nicht blockiert.
Ich kann mir zwei fertige Möglichkeiten vorstellen:
1) Verwenden Sie einen Debugger mit Haltepunkten. Firebug ist ziemlich nett. Safari und Chrome haben auch einige eingebaute Debugging-Tools.
2) Sie könnten Ihre Tests aus dem Browser mithilfe von Mozilla Rhino und Env-js verschieben (siehe Ссылка und Ссылка )
Alle modernen Browser (außer Opera) sollten Ihr Skript unterbrechen, wenn es länger als 5-10 Sekunden läuft ( Quelle ).
In Firefox kannst du sogar diesen Grenzwert senken , wenn 10 Sekunden eine zu große Strafe bedeuten. Beachten Sie außerdem, dass dieser Mechanismus auch dann aktiv wird, wenn Sie Code von der Firebug-Konsole ausführen:
Skript auf Firefox stoppen http://img819.imageshack.us/img819/9655/infloopsp.jpg
Ich denke, diese Funktion allein sollte eine ziemlich sichere Umgebung für diese schleimigen Experimente bieten:)
Es gibt nichts, was Sie tun können, um den Absturz des Browsers zu verhindern, als Fehler zu beheben, die den Absturz des Browsers verursachen.
Sie können die Auswirkungen des Absturzes zumindest abmildern, indem Sie einen Browser wie Chrome verwenden, der Abstürze in einem Tab generell von den anderen trennt (sodass Sie nur Ihre eigene Seite verlieren) oder einfach nur einen separaten Browser zum Testen installieren.
Um die Daten im Protokoll zu verfolgen, könnten Sie ein Plugin wie Firebug verwenden, das über einen integrierten Debugger verfügt, so dass Sie die Ausführung des Skripts unterbrechen und Ihre Variablen überprüfen können, vermutlich vor einem Absturz tritt auf.
Tags und Links javascript loops browser infinite-loop