Sven Rautenberg: Seite Laden --> Fortschrittsbalken

Beitrag lesen

Moin!

also im browser wird durch druecken ein php script aufgerufen, das mehrere geraete per snmp status maessig abfragt z.b. port 1 = link up, ....
diese informationen werden an die db uebertragen und verglichen, wenn aenderungen fuer einzelne ports vorliegen werden sie geupdatet.
und durch das snmp abfragen der einzelnen ports dauert es bei 2 geraeten schon mal 40 sek. bis alles fertig ist. darum der vorschlag einen fortschrittsbalken einzubinden. ich hoffe es ist jetzt verstaendlich. ;-)

Du willst per browseraufgerufenem Skript etwas tun, was du sinnvollerweise damit nicht erledigen solltest.

Deine Aufgabe sollte sich eigentlich in zwei Teilaufgaben splitten. Die wichtigste und zeitaufwendigste, nämlich die SNMP-Abfrage, sollte hierbei unabhängig vom Browser regelmäßig per Cronjob erledigt werden.

Du kannst jedenfalls unmöglich eine von der Realität (dem Fortschritt auf dem Server) abhängige und echte Fortschrittsanzeige realisieren. Es gibt viel zuviele Einflüsse, die dir den Effekt verhageln können. Irgendein Cache wird deine Seite immer irgendwie abfangen und erst weitersenden, wenn die Seite fertig ist - und damit alle Aufgaben erledigt sind. Resultat: Warten, bis "100%" erscheint.

Typischerweise wird zur Beruhigung der Benutzer ein Fake-Balken eingeblendet. Dazu gibts einen netten Trick: Auf der Seite, von der aus das Skript aufgerufen wird, werden zwei Layer angelegt (positioniert werden muß nur einer von beiden). Der eine enthält den normalen Inhalt und wird zu Beginn angezeigt (visibility:visible). Der andere wird entsprechend so positioniert, dass er an geeigneter Position im Fenster angezeigt wird, wenn gewartet werden muß, und versteckt (visibility:hidden). onclick wird dann der Content ausgeblendet und das "Bitte warten" eingeblendet, während im Hintergrund der Browser auf die neue Seite wartet.

- Sven Rautenberg

--
ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|