2009-09-17 7 views
0

Nous essayons actuellement d'optimiser les performances d'un site Web ASP.NET en développement depuis longtemps. Nous utilisons MS Ajax avec UpdatePanels et autres. ComponentArt fait également partie de l'image.Optimisation des performances d'un site Web ASP.NET

La méthode de chargement de la page est très lourde et nous essayons de réduire la graisse d'ici. Est-il possible d'éviter d'appeler le chargement de la page pendant une publication partielle par un contrôle dans un panneau de mise à jour. Est-ce possible sans entraver d'autres fonctionnalités sur la page?

Le thread le plus proche de ce que nous essayons d'obtenir est c# updatepanel with timer page_load. Mais nous ne voulons pas vérifier explicitement la cible de l'événement, car il y en a des dizaines.

Répondre

1

Désolé, chaque requête au serveur (AJAX ou autre) déclenche le cycle de vie de pleine page - vous avez besoin de trouver un bon moyen de déterminer si vous avez affaire à une requête AJAX ou pleine page de publication.

http://forums.asp.net/p/1089247/1629084.aspx#1629084 ressemble à cela pourrait vous aider, par exemple, vous voulez quelque chose comme ceci:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if(!ScriptManager.GetCurrent(this).IsInAsyncPostBack) 
    { 
     // This is a normal (i.e. full) postback 
    } 
} 
0

La méthode de chargement de la page est appelée à chaque publication, y compris lors du premier chargement de la page.

Vous pouvez utiliser la propriété IsPostBack pour déterminer s'il s'agit du premier chargement de la page ou de la deuxième fois. Mettez toute la logique que vous voulez seulement exécuter une fois dans une instruction if.

Par exemple

if (!IsPostBack) 
{ 
    // Do stuff on the first page load only 
} 
0

Vous pouvez vérifier si le rendu partiel est demandé à l'aide

void Page_Load(object sender, EventArgs e) 
{ 
    if (!ScriptManager.GetCurrent(this).IsInAsyncPostBack) 
    { 
     // Do stuff only needed for full rendering here 
    } 
} 
0

D'une certaine façon je manqué répondre aux réponses ici. Merci beaucoup pour la contribution des gars!

"IsInAsyncPostBack" est ce dont j'avais besoin. Mais après avoir analysé le projet à fond, j'ai conclu qu'il était trop compliqué pour être optimisé de cette façon, car il n'était pas conçu à l'origine pour fonctionner de cette façon. J'ai soumis ma proposition pour supprimer la base de code frontend existante et passer à Silverlight ou Flex.

Merci encore et désolé pour le délai de réponse.

+0

Ce n'est pas un forum - il n'y a pas de pression pour répondre, mais c'est toujours agréable d'entendre comment les choses ont fonctionné à la fin! :-) – Justin

+0

@Justin: Ma proposition de passer à Silverlight n'a pas été acceptée à l'époque et nous avons fini par utiliser l'ANTS Performance Profiler de Red Gate qui a très bien fonctionné. Mais même après la mise en œuvre des tunnels de performance, le site prenait encore une décennie à charger. En fin de compte, les puissances supérieures ont décidé d'aller avec Silverlight. J'étais encore là pour voir ça arriver :) – atlantis

Questions connexes