2009-03-06 5 views
0

Je crée une page Web ASP.NET qui génère des pages à partir de SQL lorsqu'ils ne sont pas mis en cache. Leur temps de chargement peut être compris entre 300ms et 1.5secondes (pas de réponse à votre base de données s'il vous plait). Personnellement, je trouve ces valeurs trop longues, et je cherchais une solution qui me permette d'informer l'utilisateur que la page qu'il va visiter nécessitera un peu de temps à charger.Page chargement de l'image

Je cherchais une solution qui pourrait être via la fonction Page_Load, si c'est possible. La solution parfaite pour moi dans ce cas est de montrer à l'utilisateur soit un GIF animé ou un texte disant que la page est en train d'être générée. Sur une note de côté, je viens de programmer principalement des applications Windows.

Répondre

1

Voici un exemple de la façon d'utiliser l'objet Response pour vider le contenu dans le navigateur et continuer 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>"); 
    } 
} 
1

Vous souhaiterez d'abord afficher 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 affichez le reste du contenu, vous devez ajouter un peu de javascript pour supprimer les éléments de première page envoyés afin que le graphique de chargement disparaisse.

1

Vous pouvez commencer le rendu de la page et vider le tampon appelant Response.Flush(). Ce qui enverra le contenu du tampon au navigateur. Vous devrez alors éteindre le graphique une fois qu'il est chargé.

Une autre option serait d'utiliser AJAX pour charger les images, de sorte que vous chargiez la page entière, sans les images, puis ince une autre demande pour obtenir les images. Cela pourrait être plus facile, puis essayer de rendre une page partielle.

1,5 secondes c'est pas mal pour une page de charger vous vous assurez que cela vaut votre temps et effort?