JavaScript Reload

psittacus

Stammuser
Hallo HaBoer,
ich habe gerade meine ersten (und vielleicht einzigen) Javascript Versuche gemacht und habe eine kleine Frage dazu:
Code:
while (1 == 1){
    setTimeout(function(){
        location.reload(true); 
    },2000);
}
Es soll die Seite alle 2 Sekunden neu laden.
Eingebunden habe ich das JavaScript File so:
Code:
<script language="javascript" type="text/javascript" src="reloader.js"></script>
Wenn ich es im Browser öffne hängt er sich jedoch auf und sagt mir, dass das Skript nicht mehr antwort (unter Firefox)
Unter Chrome sagt er mir, dass die Seite ganz einfach kaputt ist.

Wo habe ich da meinen Fehler?
 

jack4flash

Stammuser
Entferne die while.

Den timeout musst du nur so Platzieren das er bei jedem Aufruf der Seite gestartet wird.
 

Fluffy

Stammuser
Hi psittacus,
setTImeout() ist "nonblocking" d.h. das Skript in dem die Schleife liegt, zieht unglaublich viel Rechenleistung und schreibt die Queue voll welche dann abgearbeitet werden soll.
Deswegen geht die Seite kaputt.

Für dein AnwendungsSzenario gibt es die Funktion setInterval()

Gruß

Fluffy

P.s.:Du solltest auch sicherstellen das deine Seite nach dem Intervall fertig ist sonst hast du auch eine kaputte Seite.
Wiso willst du die komplette Seite überhaupt neu laden?
Mir schwant das da vom Aufbau her noch einiges Anderes falsch ist.
 
Zuletzt bearbeitet:

psittacus

Stammuser
Okay danke für die Verbesserungen!
Ja ich habe mein Miniprojekt nun umgekrempelt und lasse die Seite nun per Buttonevent neu laden, das klappt deutlich besser :D
 

Fluffy

Stammuser
Ja das geht auch, oder wenn du ein neu-laden per interval willst:
Kannst du auch einfach die Daten neu laden, und in die Seite einfügen, dafür sind AngularJS, VueJS und ReactJS besonders gut geeignet.
Und wenn du da bist könntest du auch mittels Websocket(je nachdem was für ein Backend du hast) benutzten und pushen ;) .
Viel Spass mit deinem Projekt.

Gruß

Fluffy
 
Oben