Laden...

Ladezeit einer aspx Seite ermitteln

Erstellt von AndreMueller vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.782 Views
A
AndreMueller Themenstarter:in
22 Beiträge seit 2005
vor 17 Jahren
Ladezeit einer aspx Seite ermitteln

Hallo zusammen,

ich habe folgendes Problem :

Ich arbeite Zeitweise mit sehr komplexen Datenbankabfragen die einige Zeit brauchen bis es zum Ergebnis kommt.

Das Ergbenis stellen ich in einem Gridview (DataSet) da.
Nun mein Problem:

Ich möchte dem Benutzer eine Fortschittanzeige bieten, bzw. wenigstens eine kurze Info das die Seite noch geladen wird. Die "Weltkugel" im Browser steht zu dem Zeitpunkt schon. Also hat der Benutzer keine möglichkeit zu sehen das noch was passiert.

Ich wäre dankbar für ein paar Tips.

Gruß
André

P
123 Beiträge seit 2006
vor 17 Jahren

Du könntest am Einfach eine Variable erstellen mit der aktuelle Zeit und am Ende des Skripts. Diese dann einfach miteinander vergleichen!

Evtl. kann dir auch das weiterhelfen:
http://www.aspheute.com/artikel/20001006.htm

Gruss plongo


Woher soll ich wissen, was ich denke, bevor ich höre, was ich sage!
Kurzum: Läufer sind gesünder, "gescheiter" und glücklicher als Nichtläufer.
www.andreas-nicole.de

P
554 Beiträge seit 2005
vor 17 Jahren

Muss es eine Fortschrittsanzeige sein?

Falls nicht würde doch auch ein "Bitte warten" genügen, das nur solange sichtbar ist bis er durch ist.

Achtung! - Hinter dir ist ein dreiköpfiger Affe!

2.082 Beiträge seit 2005
vor 17 Jahren

Hallo AndreMueller,

warum nicht ein Label verwenden und den Text je nach dem an welcher Stelle du dich gerade befindest setzen. Also

Label.Text = "10% geladen...";

usw.

Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de

P
123 Beiträge seit 2006
vor 17 Jahren

das mit dem Label bringt nichts, dan ja immer das ausgeben wird, was dem Label als letztes zugewiesen worden ist!

Gruss plongo


Woher soll ich wissen, was ich denke, bevor ich höre, was ich sage!
Kurzum: Läufer sind gesünder, "gescheiter" und glücklicher als Nichtläufer.
www.andreas-nicole.de

2.082 Beiträge seit 2005
vor 17 Jahren

Dann machst du halt einen int wert, der hochgezählt wird nach jedem Schritt und das Label bekommt dann den Wert.

Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de

24 Beiträge seit 2006
vor 17 Jahren

Wie wäre es, dass ganze asynchron zu machen (AJAX). Dann kannst Du im Hintergrund den Status deiner App. abfragen und dem Benutzer sichtbar machen. Erforder allerdings dann client-seitiges Scripting...

C
1.215 Beiträge seit 2004
vor 17 Jahren

Das halte ich auch für die beste Möglichkeit - ohne den Einsatz von JS wirst Du so oder so nichts "Vernünftiges" zustande bringen können...

Um das zu realisieren, nimmst Du nicht AJAX sondern lädst die Seite in einem hidden-iframe voraus.
Beim Start des Ladevorgangs löscht Du den Seiteninhalt und blendest ein DIV ein, das eine Variable enthält, die anfangs "0" anzeigt.
Dazu schreibst Du einen eigenen Stream als Filter für die Seitenausgabe, der die gesamte Seite puffert. Dadurch erhälst Du die Byte-Anzahl der Ausgabe.
Nun setzt Du in den gepufferten Ausgabestrom alle 10% der Gesamtlänge ein <script> Tag, das die Variable des DIVs um 10% hochzählt.
Am Ende hast Du dann 100% in dem DIV und tauschtst die leere Seite durch die vorausgeladene aus.

Ich hoffe, Du hast verstanden, wie ich das meine...
😉
Ist einiges an Aufwand, aber dafür hast Du hinterher eine universelle Möglichkeit, einen Fortschrittsbalken beim Seitenladen anzuzeigen.

Grüsse
Cord