Initialisierung der Seite zum Laden des Browserindikators / animierten Symbols mit JavaScript

8

Gibt es eine einfache Möglichkeit, den Browser Throbber (Seitenladeanzeige) zu starten und zu stoppen, ohne die Seite, auf der Sie sich befinden, zu ändern? Vorzugsweise ohne externe Bibliotheken oder AJAX-Aufrufe.

    
William 28.12.2012, 14:41
quelle

3 Antworten

12

Nein. Sie könnten versuchen, es durch Ajax-Aufrufe oder ähnliches zu drehen, aber nicht. Dieser Teil des Browsers ist nicht für Sie, sondern für den Browser!

Das ist ein bisschen wie die Frage, ob Sie die Systemuhr ändern können, so dass Ihr Spiel, das eine Zeitmaschine enthält, realistischer ist.

    
Rich Bradshaw 28.12.2012 15:03
quelle
3

Sie könnten ein einfaches serverseitiges Skript aufrufen, nennen wir es 'sleep.cgi', das würde die Ausführung anhalten (sleep) und damit die Lieferung einer einfachen Self-Reloading-Seite in einem versteckten iframe verzögern. Das sollte so ziemlich alle gängigen Browser so aussehen lassen, wie Sie es als "Browser Throbber" (Seitenladeanzeige) bezeichnen. Sobald Sie mit irgendeinem Grund fertig sind, den der Throbber anzeigen soll, würden Sie den erwähnten Iframe-Speicherort einfach auf einen leeren String zurücksetzen. So würde ich es machen:

1) Schreiben Sie ein einfaches serverseitiges Skript, das die Anfrage entgegennimmt und die Ausführung für bis zu 30 Sekunden anhält, ohne die Seitenladezeit des Browsers zu überschreiten. Sobald die Ruhezeit abgelaufen ist, antwortet dieses Server-Skript mit etwas wie folgt:

%Vor%

Erzwingt eine Schleife, bis der Browser die Anzeige "Seite geladen" anzeigen soll.

2) Schreibe unterstützende JavaScript-Funktionen, die den 'Throbber' auf Anfrage starten und stoppen und HTML-Elemente hinzufügen, die wir verwenden werden:

%Vor%

Ich habe einen kurzen Test in Chrome / IE / Opera / Firefox gemacht und es scheint OK zu funktionieren. Ich hatte aber noch nie so etwas zu tun.

EDIT: Wenn Ihr Web-Server PHP-Skripte unterstützt, ist hier die Sleep-Funktion Referenz: Ссылка Ich don 't schreibe nicht in PHP, aber ich glaube, dein PHP-Dokument sollte in etwa wie folgt aussehen:

%Vor%

Prost!

    
TildalWave 25.01.2013 03:10
quelle
1
  

Die Benutzeroberfläche friert ein, wenn etwas sehr CPU-intensives geladen wird, so dass Sie nie die animierte GIF oder Fortschrittsbalken sehen.

Sie haben ein XY-Problem. Sie können das Einfrieren des Browsers verhindern, indem Sie setTimeout verwenden, um CPU-intensive Vorgänge in kleinere Blöcke aufzuteilen. Der Browser throbber ist ein UI-Element, das signalisiert, dass etwas aus dem Netzwerk geladen wird; Es ist extrem verwirrend, wenn Sie es aus anderen Gründen verwenden.

    
Lie Ryan 25.01.2013 09:32
quelle

Tags und Links