Question

J'ai un site Web ASP.Net 2.0 compatible Ajax.Net.L'hébergement du site et de la base de données est hors de mon contrôle, tout comme le schéma de la base de données.Lors des tests sur le matériel, je contrôle que le site fonctionne bien, mais sur le matériel du client, il y a des retards notables lors du rechargement ou du changement de page.

Ce que j'aimerais faire, c'est rendre ma candidature aussi compacte et rapide que possible lorsque je la soumets.Une idée consiste à définir des dates d'expiration pour toutes les ressources statiques du site afin qu'elles ne soient pas rappelées lors du chargement des pages.Par ressources, j'entends les images, les feuilles de style liées et les fichiers sources JavaScript.Y a-t-il un moyen facile de faire ceci?

Quelles autres façons existe-t-il d’optimiser un site Web .Net ?

MISE À JOUR:J'ai exécuté YSlow sur le site et les domaines dans lesquels je suis le plus durement touché sont le nombre de JavaScript et de feuilles de style chargées (23 fichiers JS et 5 feuilles de style).Tous sauf un (la feuille de style principale) ont été insérés par Ajax.net et Asp.Pourquoi tant ?

Était-ce utile?

La solution

  1. Combinaison de scripts dans .net 3.5 SP1
  2. Meilleures pratiques pour les sites Web rapides
  3. Compression HTTP (gzip)
  4. Compresser JS/CSS (différent de la compression http, réduire le javascript)
    1. Compresseur YUI
    2. Compresseur .NET YUI

Mon meilleur conseil est de consulter le Contenu YUI.Ils ont d'excellents articles qui parlent de choses comme Sprites CSS et j'en ai de belles bibliothèques javascript pour aider à réduire le nombre de requêtes le navigateur est en train de créer.

Autres conseils

Si vous utilisez Firefox pour tester votre site Web, vous souhaiterez peut-être essayer une astucieuse extension Firefox de Yahoo!appelé YSlent.

Il analyse vos pages Web et fournit des notes de A à F (A étant le meilleur et F étant le pire) pour chacune des meilleures pratiques, pour des sites Web hautes performances.Il vous aidera à retrouver les éléments de votre site Web que vous pourriez optimiser pour gagner en accélération.

Désactivez l'état d'affichage par défaut, il y aura une différence de jour et de nuit, même sur les pages les plus simples.

j'ai écrit un article de blog sur l'amélioration des performances des pages ASP.NET il y a quelques mois.Voici quelques moyens rapides et faciles -

  • Désactiver l'état d'affichage
  • Désactiver la validation des événements
  • Implémentez la compression HTTP gzip/deflate pour réduire la taille de la réponse (nombre d'octets que le serveur doit renvoyer au client)
  • Essayez d'optimiser/minimiser les appels de votre base de données pour chaque requête

Je pense que vous devez vraiment être en mesure d'obtenir des données/télémétrie PerfMon réelles à partir de l'application pendant son exécution en production pour pouvoir prendre une décision éclairée sur ce qu'il faut optimiser.

En guise de conseil, je m'assurerais que votre application est déployée en tant que Libérer build et définissez debug="false" dans le fichier 'compilation' de votre web.config.

Vous semblez commencer par supposer que votre problème est la taille du téléchargement – ​​ce n’est pas nécessairement le cas.Vous devez effectuer quelques expérimentations avec votre site ASP.NET pour déterminer si certaines zones de votre code entraînent des retards excessifs.S'il s'avère que la taille du téléchargement n'est pas votre problème, vous devrez trouver des moyens de mettre vos résultats en cache (examiner la mise en cache de sortie, qui est une fonctionnalité ASP.NET) ou d'optimiser votre code.

Dans tous les cas, la première étape lorsque l'on examine un problème de performances est toujours pour vérifier d’abord vos hypothèses, puis décidez d’un plan d’action.

Vous pourriez commencer à examiner des stratégies de mise en cache.Les fichiers statiques comme les CSS (même compressés) et les images (même optimisées) ne devraient être téléchargés qu'une seule fois par le navigateur pendant un certain temps.

La combinaison de scirpt pour AJAX a déjà été mentionnée, mais je n'ai pas remarqué de référence au ScriptReferenceProfiler que MS a publié sur codeplex pour aider à déterminer quoi combiner.Mike Ormond a un bon point de départ à ce sujet.

Un autre conseil si vous effectuez beaucoup d'INSERTS sur votre base de données est de vérifier que la mise en cache disque de votre serveur est activée.Par exemple, j'avais un importateur de données qui effectuait 1,2 million d'insertions au cours d'une exécution.Cela a pris 4 heures et modifié sans mise en cache.Cela a pris 16 minutes avec.

Une chose générale lors de l'utilisation conjointe d'ASP.NET et d'Ajax (n'importe quelle bibliothèque Ajax) est d'éviter d'éléphanter vos éléments Page_Load et Page_Init (et leurs homologues de méthode), car ceux-ci s'exécuteront à chaque requête Ajax.

Quand cela est dit, j'abandonnerais sérieusement ASP.NET AJAX et utiliserais rien autre...

Anthem.NET, AjaxPRO.NET, jQuery ou quoi que ce soit d'autre qu'ASP.NET AJAX...

Bien sûr, j'utiliserais Ra-Ajax moi-même puisque c'est mon projet.Mais là encore, je suis partial...

Vous pouvez activer la compression en fonction de la prise en charge par votre client.Voir cet article : texte du lien

Les ressources statiques ne devraient pas être renvoyées à moins d'être modifiées.IIS enverra un code de réponse indiquant au navigateur d'utiliser la version mise en cache.

Vous pouvez également consulter la mise en cache de sortie ASP.NET, qui peut être appliquée de manière assez granulaire à différentes parties de votre page :

http://msdn.microsoft.com/en-us/library/xsbfdd8c(VS.71).aspx

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