Question

Je crée une page Web ASP.NET qui génère des pages à partir de SQL lorsqu'elles ne sont pas mises en cache. Leur temps de chargement peut être compris entre 300 ms et 1,5 seconde (vous ne pouvez pas réparer les réponses à la base de données).

Personnellement, j’ai trouvé ces valeurs trop longues et je recherchais une solution me permettant d’informer l’utilisateur que la page qu’il visitera nécessitera un peu de temps à charger.

Je cherchais une solution qui pourrait être via la fonction Page_Load, si cela était possible. La solution idéale pour moi, dans ce cas, est de montrer à l'utilisateur un GIF animé ou un texte disant que la page est en train d'être générée.

En passant, je viens principalement de la programmation d'applications Windows.

Était-ce utile?

La solution

Voici un exemple d'utilisation de l'objet Response pour vider le contenu dans le navigateur et poursuivre le traitement:

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>");
    }
}

Autres conseils

Vous pouvez commencer le rendu de la page et vider le tampon d’appel de Response.Flush (). Ce qui enverra le contenu du tampon au navigateur. Vous devrez ensuite désactiver le graphique une fois chargé.

Une autre option consisterait à utiliser AJAX pour charger les images. Ainsi, vous chargez la page entière, sans les images, puis créez une autre demande pour obtenir les images. Cela pourrait être plus facile que d’essayer de rendre une page partielle.

1,5 seconde n'est pas une mauvaise chose pour une page de vous charger, cela en vaut la peine.

Vous allez d'abord générer le graphique de chargement, puis vider le tampon de sortie afin que le contenu soit envoyé au navigateur de l'utilisateur à l'aide de Response.Flush () .

Lorsque vous exportez le reste du contenu, vous devez avoir un peu de javascript pour supprimer les premiers éléments de page envoyés afin que le graphique de chargement disparaisse.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top