ladebalken
newbie
- javascript
Also, ich finde es recht kompliziert, ich habe Folgendes vor:
Ich habe eine Tabelle welche 100 Pixel breit ist, in dieser Tabelle ist ein Bild vorhanden welche den Ladebalken darstellen soll.
Ich rufe mit PHP 2 Timestamps ab, zum einen den Aktuellen und zum anderen einen Startpunkt. Dann wird noch eine Zeit abgerufen welche die Zeit ist, welche der Ladebalken darstellt.
Nun rechnet man den aktuellen Timestamp minus dem Startzeitpunkt hat also die Zeit in Sekunden die seit dem Start vergangen ist.
Da der Ladebalken alles in Prozent angeben soll muss man nun die gesamtzeit des Ladevorganges durch 100 teilen und das mal den Sekunden nehmen die seit dem Start vergangen sind wenn ich das richtig sehe. Dann hat man raus wie breit der Ladebalken sein soll richtig?
Hier ein Minnianfang:
<script language="JavaScript" type="text/JavaScript">
var waited_time;
var percent_time;
var percent_now;
var starttime = 234025255; //die Zahl wird mit PHP ausgelesen
var now_time = 234025260; //die Zahl wird mit PHP ausgelesen
var wait_time = 1000; //die Zahl wird mit PHP ausgelesen
waited_time = now_time - starttime; // es sind 5 Seks. vergangen
percent_time = wait_time/100; //10 ist 1 %
percent_now = waited_time/percent_time;
// 0.5% vergangenund somit bildgröße
document.all.laden.width = percent_now;
</script>
Nun zu den Fragen/Aufgaben:
ACHTUNG: Ích habe noch so gut wie garkeine Ahnung von Javascript... sorry guys ;)
hi,
ACHTUNG: Ích habe noch so gut wie garkeine Ahnung von Javascript... sorry guys ;)
gut - dann kann man dir ja noch in aller ruhe erklären, dass das, was du vorhast, sinnlos ist.
sieh dir z.b. den punkt
Da der Ladebalken alles in Prozent angeben soll muss man nun die gesamtzeit des Ladevorganges durch 100 teilen
an. die "gesamtzeit des ladevorgangs"? vorher bitte schön willst du diese denn schon wissen, _bevor_ das laden der seite _komplett_ beendet ist? eben, kannst du gar nicht.
deshalb kann ich dir nur raten: verschwende nicht deine zeit mit einem "problem", dass per se unlösbar ist.
gruss,
wahsaga
hi,
ACHTUNG: Ích habe noch so gut wie garkeine Ahnung von Javascript... sorry guys ;)
gut - dann kann man dir ja noch in aller ruhe erklären, dass das, was du vorhast, sinnlos ist.
sieh dir z.b. den punkt
Da der Ladebalken alles in Prozent angeben soll muss man nun die gesamtzeit des Ladevorganges durch 100 teilen
an. die "gesamtzeit des ladevorgangs"? vorher bitte schön willst du diese denn schon wissen, _bevor_ das laden der seite _komplett_ beendet ist? eben, kannst du gar nicht.
deshalb kann ich dir nur raten: verschwende nicht deine zeit mit einem "problem", dass per se unlösbar ist.
gruss,
wahsaga
Mmh... also eigentlich denke ich schon das das Problem lösbar ist, ob ich nun einen Countdown in Sekunden angebe oder das mit einem Balken mache der langsam steigt ist egal, ich weiß halt nur nicht wie man im genauen Sekundentakt runter zählt ...
hi,
erstmal: auch für dich gilt [pref:t=68383&m=392351].
versuche es bitte zu beherzigen, danke.
Mmh... also eigentlich denke ich schon das das Problem lösbar ist,
nein, deine eigentliche aufgabenstellung, nämlich den fortschritt des ladens der seite auf diese weise prozentual darzustellen, ist so _nicht_ realisierbar - ganz einfach, weil du _nicht weisst_, wie lange der client zum laden braucht.
ob ich nun einen Countdown in Sekunden angebe oder das mit einem Balken mache der langsam steigt ist egal, ich weiß halt nur nicht wie man im genauen Sekundentakt runter zählt ...
ja wenn das alles ist, dann sieht dir http://selfhtml.teamone.de/javascript/objekte/window.htm#set_interval bzw. das darunter stehende setTimeout() an.
gruss,
wahsaga
nein, deine eigentliche aufgabenstellung, nämlich den fortschritt des ladens der seite auf diese weise prozentual darzustellen, ist so _nicht_ realisierbar - ganz einfach, weil du _nicht weisst_, wie lange der client zum laden braucht.
nein, ich meinte nie das der ladebalken anzeigen soll wie lange die seite läd und das habe ich auch niemals gesagt :)
Dafür lese ich ja drei Zeiten aus der MySQL Tabelle aus und diese Zeiten sollen dargestellt werden, also das heißt ab stem Startpunkt (starttime) bis zu dem Zeitpunkt (Starttime+wait_time) nicht wie lange die Seite geladen wird, das hat nichts damit zu tun
Hallo Neuling,
warum das über die Zeit nicht geht, hat dir wahsage ja schon geschrieben. Ich habe da aber eine Idee, wie man es über die Länge machen könnte: mit
document.getElementsByTagName('body')[0].innerHTML.length
kannst Du die Zahl der Bytes zwischen <body> und </body> ermitteln. Ob das auch geht, wenn die Seite noch nicht fertig geladen ist, habe ich jetzt nicht getestet. Aber das kannst Du ja auch mal testen. Wenn es aber klappen sollte, dann kannst Du im Sekundentakt die aktuelle Größe abfragen und durch die Gesamtgröße teilen. Du machst allerdings hier den (kleinen) Fehler, den Seitenkopf nicht zu berücksichtigen.
Schreib doch bitte, ob es so geht. Ich bin nämlich auch neugierig.
Gruß, Jürgen