2008-08-14 8 views
24

Ich habe eine Ajax.Net-fähige ASP.Net 2.0-Website. Das Hosting für den Standort und die Datenbank liegt außerhalb meiner Kontrolle, ebenso wie das Schema der Datenbank. Beim Testen von Hardware, die ich kontrolliere, funktioniert die Site gut, aber auf der Client-Hardware gibt es merkliche Verzögerungen beim Neuladen oder Wechseln von Seiten.Beschleunigung einer ASP.Net-Website oder -Anwendung

Ich möchte meine Anwendung so kompakt und schnell wie möglich machen, wenn ich sie ausliefern. Eine Idee besteht darin, Ablaufdaten für alle statischen Ressourcen der Site festzulegen, damit sie beim Laden der Seite nicht abgerufen werden. Unter Ressourcen verstehe ich Bilder, verknüpfte Stylesheets und JavaScript-Quelldateien. Gibt es einen einfachen Weg, dies zu tun?

Welche anderen Möglichkeiten gibt es, um eine .Net-Website zu optimieren?

UPDATE: Ich habe YSlow auf der Website ausgeführt und die Bereiche, in denen ich am härtesten gelandet bin, sind die Anzahl der geladenen JavaScript- und Style-Sheets (23 JS-Dateien und 5 Stylesheets). Alle außer einem (das Haupt-Stylesheet) wurde von Ajax.net und Asp eingefügt. Warum so viele?

Antwort

0

Sie können die Komprimierung basierend auf Ihrem Client aktivieren. Siehe diesen Artikel: link text

0

Statische Ressourcen sollten nur dann erneut gesendet werden, wenn sie geändert werden. IIS sendet einen Antwortcode, der den Browser anweist, die zwischengespeicherte Version zu verwenden.

3

Schalten Sie ViewState standardmäßig aus, es ist ein Tag und Nachtunterschied auf den einfachsten Seiten.

1

Ich denke, Sie müssen wirklich in der Lage sein, einige PerfMon Daten/Telemetrie aus der App während der laufenden Produktion zu bekommen, um in der Lage zu sein, eine kluge Entscheidung darüber zu treffen, was optimiert werden soll.

Als throw Spitze weg würde ich sicherstellen, dass Ihr App als Veröffentlichung Build bereitgestellt und set debug = „false“ in der ‚Compilation‘ Ihre web.config.

5

Wenn Sie Firefox verwenden, um Ihre Website zu testen, möchten Sie vielleicht eine raffinierte Firefox-Erweiterung von Yahoo! genannt YSlow.

Es analysiert Ihre Webseiten und bietet Noten von A-F (A ist das Beste und F ist das Schlechteste) für jede der Best Practices für Websites mit hoher Leistung. Es wird Ihnen helfen, die Elemente Ihrer Website aufzuspüren, die Sie optimieren könnten, um schneller zu werden.

1

Sie scheinen unter der Annahme, dass Ihr Problem Download-Größe zu beginnen ist - das ist nicht unbedingt der Fall sein kann. Sie sollten mit Ihrer ASP.NET-Website experimentieren, um festzustellen, ob sich Bereiche in Ihrem Code befinden, die zu unnötigen Verzögerungen führen. Wenn sich herausstellt, dass die Downloadgröße nicht Ihr Problem ist, müssen Sie nach Möglichkeiten suchen, Ihre Ergebnisse zwischenzuspeichern (schauen Sie sich das Ausgabe-Caching an, das eine ASP.NET-Funktion ist) oder optimieren Sie Ihren Code.

In jedem Fall - der erste Schritt bei der Betrachtung eines Leistungsproblems ist immer, um zuerst Ihre Annahmen zu überprüfen, dann entscheiden Sie sich für eine Vorgehensweise.

2

Ich schrieb eine blog post über ASP.NET-Seite Leistung dies ein paar Monate zurück zu verbessern. Hier sind einige schnelle & einfache Möglichkeiten -

  • Ansichtszustand ausschalten
  • Schalten Sie die Ereignisvalidierung
  • Implementieren HTTP gzip/deflate Komprimierung, um die Antwortgröße (Anzahl der Bytes der Server zu senden hat zu reduzieren zurück zu der Client)
  • Versuchen Sie, Ihre Datenbank Anrufe für jede Anforderung zu optimieren/minimieren
1

Sie beginnen könnte bei Caching-Strategien suchen. Statische Dateien wie CSS (sogar komprimierte) und Bilder (sogar optimierte) sollten nur einmal für eine bestimmte Zeit vom Browser heruntergeladen werden.

Scirpt Kombination für AJAX wurde bereits erwähnt, aber ich habe nicht bemerkt Bezug auf den ScriptReferenceProfiler MS hat auf Codeplex freigegeben, um herauszufinden, was zu kombinieren. Mike Ormond has a good start point on this.

Noch ein Tipp, wenn Sie eine Menge von Einfügungen in der Datenbank tun ist Ihre Server-Disk-Caching doppeltzukontrollieren eingeschaltet ist. Ein Beispiel: Ich hatte einen Datenimporteur, der während eines Laufs 1,2 Millionen Einfügungen machte. Nahm 4 Stunden und ändere ohne Zwischenspeicherung. Nahm 16 Minuten damit an.

1

Eine allgemeine Sache, wenn ASP.NET und Ajax (jedes Ajax Bibliothek), um zu vermeiden, dass Sie Page_Load und Page_Init (und ihre Methoden-Gegenstücke) elephant machen, da diese bei jeder Ajax-Anfrage ausgeführt werden.

Wenn das gesagt wird, würde ich ernsthaft ASP.NET AJAX Graben und etwas anderes verwenden ...

Anthem.NET, AjaxPRO.NET, jQuery oder was auch immer sonst als ASP.NET AJAX ...

Natürlich würde ich selbst Ra-Ajax verwenden, da das mein Projekt ist. Aber dann bin ich wieder voreingenommen ...

+0

stecker stecker .... Zzzzzz – redsquare