Frage

Ich mache eine ASP.NET-Webseite, die Seiten von SQL erzeugt, wenn sie nicht im Cache gespeichert sind. Ihre Ladezeit zwischen 300 ms bis 1,5 Sekunden sein könnte (No Fix Sie Datenbank antwortet bitte).

ich persönlich diese Werte finden zu lang sein, und wurde nach einer Lösung gesucht, die mich um den Benutzer zu informieren, ermöglicht, dass die Seite, die er ein wenig Zeit benötigen besucht zu laden.

Ich war auf der Suche nach einer Lösung, die über die Page_Load Funktion sein könnte, wenn das möglich ist. Die perfekte Lösung für mich in diesem Fall zeigt der Benutzer entweder ein animiertes GIF oder Text der Seite sagen, erzeugt wird.

Auf einer seitlichen Anmerkung ich von der Programmierung meist Windows-Anwendungen kommen.

War es hilfreich?

Lösung

Hier ist ein Beispiel dafür, wie das Response-Objekt zu verwenden, um Inhalte an den Browser zu spülen und die Verarbeitung fortzusetzen:

using System;
using System.Web.UI;
using System.Threading;

public partial class _Default : Page
{
    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);

        Response.Write("<h1>please wait...</h1>");
        Response.Flush();

        // simulate load time
        Thread.Sleep(2000);

        Response.Write("<h1>finished</h1>");
    }
}

Andere Tipps

Du kannst die Seite dargestellt wird, und spülen Sie den Puffer Aufruf Response.Flush (). Was den Inhalt des Puffers an den Browser senden. Sie werden dann die Grafik einmal seine geladene ausschalten müssen.

Eine andere Möglichkeit wäre AJAX zu verwenden, um die Bilder zu laden, so dass Sie die gesamte Seite laden, ohne dass die Bilder und iniate dann eine weitere Anforderung die Bilder zu bekommen. Dies könnte einfacher sein, dann versuchen, eine Teil-Seite zu machen.

1,5 Sekunden sind nicht schlecht für eine Seite, die Sie sicher zu laden, dies wert ist Ihre Zeit und Mühe?

Sie werden die Lade Grafik zum ersten Ausgang wollen und dann den Ausgabepuffer spülen so dass der Inhalt so weit an den Browser des Benutzers gesendet wird durch Response.Flush() verwendet wird.

Wenn Sie die Ausgabe der Rest des Inhalts, müssen Sie dort ein wenig Javascript, haben die ersten Seitenelemente geschickt entfernen, um die Lade Grafik geht weg.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top