Ich baute ein Online-Nachrichtenportal, vor dem für mich gut funktioniert, aber einige sagen, die Homepage ist ein wenig langsam. Wenn ich daran denke, sehe ich einen Grund, warum das so ist.Datenzugriff ASP.NET
Die Homepage der Website zeigt
- Schlagzeilen
- Spot-Nachrichten (sub-Schlagzeilen
- Spots mit Bildern
- Meistgelesene News (als Titel)
- den meisten Kommentaren News (als Titel)
- 5 Nachrichtentitel aus jeder Nachrichtenkategorie (11 insgesamt zB Sport, Wirtschaft, Lokal, Gesundheit usw. .)
jetzt sind jede dieser separaten Abfragen an die db. Ich habe TableAdapters Datasets und Databases (Standard-Datenzugriffsszenarien), also rufe ich für Überschriften die Geschäftslogik in meiner Nachrichtenklasse auf, die die Databases durch den Tableadapter zurückgibt. Von da an verwende ich entweder die Datentabelle, indem ich sie einfach an die Steuerelemente anbinde oder (meistens) wandelt das Objekt sie in eine Liste (von Nachrichten) um und ich nehme sie von dort auf.
Tun Sie dies für jeden der oben genannten scheint jedoch gut zu funktionieren. Zumindest ist es keine große Last. Aber ich frage mich, ob es einen besseren Weg gibt.
Zum Beispiel ist das Projekt, das ich oben beschrieben habe, eine hochdynamische Website, Nachrichten werden eingefügt, wenn sie 24 Stunden non-stop von Agenturen eintreffen. In diesem Fall klingt Caching vielleicht nicht gut. aber andererseits weiß ich, dass es ein ähnliches Projekt für eine lokale Zeitung gibt. Die Seite wird nur einmal am Tag aktualisiert. In diesem Fall: Kann ich nur eine Abfrage ausführen, die eine Datentabelle zurückgeben würde, die alle für heute eingefügten Nachrichten enthält, diese Datentabelle abfragen und Überschriften, Punkte und andere Elemente an die entsprechenden Stellen auf der Site setzen? Oder gibt es eine bessere Alternative? Ich wandle nur, wie andere Leute ähnliche Aufgaben auf die effizienteste Weise ausführen.
+1 für die Verwendung von Firebug und YSlow für clientseitige Profilerstellung. – Anthony