Frage

Ich baute ein Online-Nachrichtenportal vor, das für mich arbeitet gut, aber einige sagen, dass der Startseite langsam ein wenig. Wenn ich daran denke, sehe ich einen Grund, warum das so ist.

Die Homepage der Website angezeigt

  1. Schlagzeilen
  2. Spot-Nachrichten (sub-Schlagzeilen
  3. Spots mit Bildern
  4. Die meisten Nachrichten lesen (als Titel)
  5. Die meisten kommentierten Nachrichten (als Titel)
  6. 5 Nachrichten Titel von jeder News Kategorie (insgesamt 11 zum Beispiel Sport, Wirtschaft, lokale, Gesundheit     etc ..)

jetzt, jede davon sind separate Anfragen an die db. Ich habe Tableadapters Datensätze und Datentabellen (Standard-Daten acces Szenarien) so für Schlagzeilen, ich nenne die Business-Logik in meinen Nachrichten Klasse, die die Datentabellen durch die Tableadapter zurück. von dort auf, ich entweder die Datentabelle, indem sie es mit den Kontrollen nur Bindung oder (den meisten Zeit) auf das Objekt wandelt es zum Beispiel zu einer Liste (von Nachrichten) und ich verbrauchen sie von dort aus.

Auf diese für jede der oben scheint jedoch in Ordnung zu arbeiten. Zumindest ist es nicht eine große Last gelegt. Aber ich frage mich, ob es einen besseren Weg gibt.

Zum Beispiel das Projekt, das ich oben beschrieben, ist eine hoch dynamische Website, Nachrichten eingefügt werden, wie sie von den Agenturen 24 Stunden non-stop ankommen. so Caching in diesem Fall möglicherweise nicht gut klingen. aber auf der anderen Seite, ich weiß, ein ähnliches Projekt für eine lokale Zeitung hat. Die Website wird nur einmal am Tag aktualisiert werden. In diesem Fall: Kann ich nur eine Abfrage ausführen, wäre das eine Datentabelle zurückkehren alle Nachrichten eingefügt für heute enthält, fragen Sie dann, dass die Datentabelle und Ort Schlagzeilen, Flecken und andere Gegenstände an ihre jeweiligen Orte auf der Website? Oder gibt es eine bessere Alternative um? Ich habe gerade wandern, wie andere Menschen auf die effizienteste Art und Weise ähnliche Aufgaben durchführen.

War es hilfreich?

Lösung

Ich glaube, Sie Firebug verwenden sollten, um herauszufinden, welche Elemente Zeit nehmen, zu laden. Manchmal große Bilder können die Show ruinieren (und die Größe des Bildes auf dem Bildschirm ist nicht immer relativ seine Download-Größe).

Zweitens könnte man die Yahoo YSlow Firefox-Plugin herunterladen und untersuchen, wenn Sie irgendwelche Verlangsamung Skripte haben.

Aber Firebug sollten Sie die beste Bewertung geben. Nach dem Laden klicken Firebug auf dem Registerkarte ‚Net‘ die Ladezeit der einzelnen Elemente in der Seite zu sehen.

Andere Tipps

Wenn Sie eine schlechte Leistung haben, ist Ihr erster Schritt ist, um Ausmisten nicht zu starten. Profil Code. genau Sie, warum es langsam ist. Ist die Verlangsamung in der Seite zu übertragen, wodurch es, oder tatsächlich dynamisch die Seite zu erzeugen? Ist eine einzelne Abfrage zu lange dauert?

Finden Sie genau, wo der Engpass ist und das Problem an der Herzinfarkt.

Caching ist auch eine sehr gute Idee, auch in Fällen, in denen Inhalte ziemlich schnell aktualisiert werden. Solange Ihre Caching-Mechanismus intelligent ist, werden Sie noch viel Generationszeit sparen. Im Falle eines Nachrichtenportal oder einem Blog zu einem Forum im Gegensatz Ihr wahrscheinlich Leistung stark mit einem Caching-System zu verbessern.

Wenn Sie feststellen, dass Ihre Verzögerungen von der DB kommen, überprüfen Sie die Tabellen, stellen Sie sicher, dass sie korrekt indiziert, gruppierten, oder was auch immer Sie brauchen, je nach der Menge der Daten in der Tabelle. Auch, wenn Sie dynamische Abfragen verwenden, versuchen Sie gespeicherte Prozeduren statt.

Wenn Sie möchten, mehrere Abfragen durchgeführt in einer Datenbankabfrage zu erhalten, können Sie. Da zunächst wont Sie Daten, die zeigen werden, bis alle Anfragen sowieso fertig sind, und Sperrung alle anderen Fragen, werden Sie zumindest zeitsparend für jede einzelne Abfrage der DB wieder auf den Zugriff. Datasets halten eine Sammlung von Tabellen, können sie durch mehrere Abfragen in der gleichen Anforderung generiert werden.

ASP.NET bieten Ihnen einen ziemlich netten Mechanismus bereits für das Caching (HttpContext.Cache), die Sie rund um wickeln können und machen es einfacher für Sie zu nutzen. Da Sie eine Lebensdauer auf im Cache befindlichen Objekte einstellen können, müssen Sie sich nicht wirklich um Artikel Sorgen und Titel nicht auf dem neuesten Stand zu sein auf.

Wenn Sie WebForms für diese Website verwenden, deaktivieren Sie Viewstate für die Kontrollen, die nicht wirklich brauchen nur sie die Seite zu machen, dass etwas schneller zu laden. Nicht viele weitere Verbesserungen und Änderungen zu erwähnen, eine Seite zu laden schneller zu machen (Gzipping, minimiert Skripte etc.)

Noch bevor irgendetwas davon zu tun, gehen Sie Anthony vorgeschlagen und Profil Code. Finden Sie heraus, was das eigentliche Problem ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top