Frage

Ich bin ein Neuling, eine leichtes Foto Schaufenster Website auf dem Kuchen-PHP-Framework mit RoR.i Plan geschrieben schaffen Effekte aus der scriptalicious Bibliothek zu verwenden, sowie Jquery für Fotoanzeige und Übergangseffekten.

Als Standort wird sehr Foto-rich, welche Programmierschritte kann ich sicherstellen, um, dass alle Fotos und andere Seiten werden schnell geladen?

War es hilfreich?

Lösung

Ich glaube, Sie ein wenig abmischen Dinge. ror Mischen mit php / Kuchen?

so, über die Leistung. es hängt vor allem davon ab, wie viele Benutzer denken Sie, werden Sie haben, die diejenigen Benutzer sind und was sie tun. 10 pro Stunde oder 100 pro Sekunde? sehen sie auf ein Bild für eine lange Zeit oder sind schnell sie von Seite zu Seite Hopping?

Hier sind einige Tipps, die nicht zu technisch sind. keine Serverkonfigurationsoptimierung, keine Memcached und so weiter. Denken über die Leistung mit gesundem Menschenverstand starten - es ist nicht der heilige Gral

  • Ihre Website / Anwendung zu langsam? am häufigsten, das ist nicht der Fall. es schadet nie, es, aber oft überhöhte Geschwindigkeit, Pflege Menschen über die Leistung zu viel . immer daran denken: Es geht nicht darum, schnell zu sein, es geht um ist schnell genug . niemand bemerkt zusätzliche Millisekunden. eine Beschleunigung von 50% fällt, wenn Ihre Seite ein zweites zu laden, aber meist irrelevant muss, wenn es nur 100 ms dauert.

  • , um herauszufinden, ob Ihre Website langsam ist, Benchmark es. gibt es diese eine Menge von Methoden zu tun, ist eine automatisierte, wie ab (Apache Benchmark). es simuliert viele Nutzer auf Ihre Website verbindet und gibt Ihnen eine schöne Zusammenfassung, wie lange es zu reagieren hat. die andere ist: sie verwenden. und nicht im lokalen Netzwerk! wenn Sie es langsam fühlen, dann etwas tun.

  • ein Foto Vitrine hängt stark von den Bildern. Bilder sind groß. so stellen Sie sicher, dass Ihr Server genug Bandbreite hat sie schnell zu liefern.

  • Wenn Sie die Bilder (das ist sehr wahrscheinlich) zu skalieren, kann die Größe nicht das Bild auf jede Anfrage, Cache das skalierte Bild! Cache zu der Miniaturansicht. Cache alles. Verarbeitung und eine statische Datei zu liefern ist viel billiger als ständig die gesamte Verarbeitung zu tun.

  • denkt über die Qualität des Bildes. wichtiger ist eine schnelle Lieferung als eine hohe Bildqualität? spielen, um mit der Bildgröße - einem bessere Kompression bedeutet geringere Dateigröße, geringere Qualität und schnelle Lieferung.

  • denken über Benutzerfreundlichkeit . wenn es keine Thumbnails Seite ist, haben die Menschen über Ihre Bibliothek navigieren nacheinander, auf eine Menge von Fotos suchen sie nicht wollen, um zu sehen. wenn sie bereits das Bild sehen, können sie direkt auf jene springen, die (Senkung Bandbreitennutzung und Anfragen pro Sekunde) wichtig sind. darüber nachdenken, flickr: die Größe der Bilder gezeigt ... sie sind wie Briefmarken - 500 Pixel breit, und die Menschen sind immer noch glücklich. wenn sie eine größere Version benötigen, klicken sie auf den „alle Größen“ Link sowieso.

  • Tricks, Tricks, Tricks : früher, wenn Benutzer mit Modi surfte, manchmal niedriger Auflösung / hohe Kompression Bilder wurden übertragen, so dass der Benutzer hatte etwas nach kürzester Zeit. erst nach dem ersten Bild geladen wurde, die größere Version gestartet. es ist nicht mehr üblich, weil heute die meisten Anwender Breitband haben, so ein weiteres Bild zu senden ist nur zusätzliche Arbeitsbelastung.

  • denkt über Publikum . gonna sie Ihre Website mit 14.4k Modem oder Breitband besuchen? werden sie verwendet Ladestellen zu verlangsamen (Fotografen sind wahrscheinlich)? überprüfen Sie Ihre Statistiken über sie zu erfahren.

  • Ihre Back-End-Skriptsprache ist wahrscheinlich nicht Ihr Problem. PHP ist nicht wirklich schnell, Rubin ist nicht wirklich schnell - im Vergleich zu, sagen wir, c oder Java oder ocaml. Gerüste sind langsamer als handgefertigt, optimierten Code. Debuggen von Code, um zu sehen, wo die langsamen Teile sind. meine Vermutung? Ändern der Bildgröße und Datenbankzugriff. das wird sich nicht ändern, wenn eine andere Sprache oder die Optimierung Ihrer Code umgeschaltet wird.

in Bezug auf die Geschwindigkeit von Websites

Es gibt viele Faktoren eine Rolle. einige von ihnen sind:

  1. server Verarbeitung: Ihre Anwendung schnell, ist Ihre Hardware schnell

  2. ?
  3. Lieferung: Wie schnell werden die Anforderungen und Dateien aus dem Client-t übertrageno den Server und umgekehrt? (Je nach Bandbreite)

  4. Client-Seite Rendering: Wie schnell ist ihr Browser, wie viel Arbeit getan werden muss,

  5. Benutzer haibts: Sie müssen die Client sogar Geschwindigkeit? manchmal, langsame Seiten sind kein Problem, z.B. wenn sie verbringen viel Zeit dort, ohne klicken um. denkt über Flash-Spiel-Websites. Wenn Sie eine Stunde spielen ein Flash-Spiel verbringen, werden Sie wahrscheinlich auch nicht, wenn die Seite geladen in 3 oder 5 Sekunden bemerken

die wahrgenommene Geschwindigkeit - eine Mischung aus allen vier -. Ist die wichtige Metrik

Wenn Sie bestätigt haben Sie wirklich zu langsam sind, sollten Sie den rechten Teil zu optimieren. die serverseitige Skripte zu optimieren ist nutzlos, wenn der Server schnell genug ist, aber die Seite dauert ewig auf dem Browser zu machen. keine Notwendigkeit zur Optimierung der Rendering-Zeit, wenn Ihre Bandbreite verstopft ist.

in Bezug auf die Optimierung

Leistung ist ein integraler Bestandteil beim Erstellen von Anwendungen. wenn Sie wirklich etwas schnell brauchen, haben Sie für die Geschwindigkeit von Anfang an zu planen. wenn es nicht für Geschwindigkeit, effektive Optimierung ausgelegt ist oft nicht möglich.

das ist nicht wirklich wahr für Web-Apps die ganze Zeit, weil sie leicht horizontal skalieren, was bedeutet:. Wurf Hardware es
alle Dinge kosten Geld, und wenn das Geld wichtig, Sie (oder Ihr Chef) ist, vergessen Sie nicht darüber. Wie viel von zwei Wochen eine Anwendung Kosten zu optimieren? sagen wir, die Kosten zu optimieren Sie (oder Ihr Chef) X € (ich bin europäisch) in Lohn. jetzt, denken Sie an einen anderen Server zu kaufen: das Y € (einschließlich Setup) kostet. wenn Y

Random buzzwords

nicht zuletzt ich werde bei Ihnen einig zufällig (ungeordnet) buzzwords werfen, vielleicht gibt es etwas, das helfen könnte. einfach mal googlen, das sollte helfen ...

Content Delivery Networks, (Intel) SSDs, Sprites (Bilder kombinieren Anfragen zu speichern), Seite Komprimierung (gzip, deflate), Memcached, APC (Bytecode Cache für PHP), minifying und Zusammenführen mehrerer CSS und JS-Dateien, bewussten Umgang mit HTTP-Statuscodes (nicht geändert), die Trennung von statischen und dynamischen Inhalten (verschiedene Server und Domains), Schritt-für-Schritt-Laden über AJAX (wichtigen Inhalt zuerst), ...

jetzt bin ich aus Ideen.

edit / update

Dinge / Techniken i vergessen:

  • implementieren einen Fortschrittsbalken oder etwas Vergleichbares, so dass die Nutzer zumindest das Gefühl, auf etwas los ist. Sie können nicht Fortschrittsbalken verwenden, wenn nur mit JavaScript arbeiten, aber zumindest eine Art von animierten Sanduhr oder eine Uhr zeigen. Wenn Sie den Blitz verwenden, können Sie einen echten Fortschrittsbalken zeigen.

  • Sie können komplette Seite neu geladen überspringen, indem Sie mit AJAX oder Flash arbeiten - nur die Daten laden Sie benötigen. Sie oft sehen diese in Flash-Image Galerien umgesetzt. laden Sie einfach das Bild und die Beschreibung.

  • Vorbelastung:., Wenn die Nutzer über einen längeren Zeitraum an einem Bild anschaut, kann man schon beginnt das nächste Bild geladen, so ist es Browser-Cache gespeichert, wenn der Benutzer weiter

Disclaimer

i nie Leistung umgesetzt kritische Anwendungen (mit 2 Ausnahmen), so dass die meisten von dem, was ich oben geschrieben habe, ist Spekulation und die Erfahrung anderen. heute lesen Sie Geschichten über erfolgreiche Start-ups und wie sie bewältigt (Performance-weise) mit einem Tag von 100 bis einer bazillion Benutzer gehen, und wie sie raffinierte Tricks verwendet, um alle diese Probleme die ganze Zeit zu lösen.
aber ist, dass Sie passieren wird? wahrscheinlich nicht. jeder darüber spricht, fast niemand braucht es wirklich (aber ich gebe zu, es ist immer noch gut zu wissen) .

meine Praxiserfahrung (ja, ich schreibe gerne lange Antworten):

sobald ich Teile einer Webseite hat mit mehreren tausend Besuchern pro Tag, angetrieben von einem CMS (typo3) und läuft auf einem einzigen dedizierten samp-Server (man denke an verwendet wird, zehn Jahre alt solaris Server, nicht ghz !). Sie könnten für Wohnungen suchen, und die Form erzählt, wie viele Ergebnisse Sie haben (z 20-40m²: 400 Hits, 30-60m²: 600 Treffer) von reloading ein iframe ON-CLICK . es war sehr, sehr langsam (aber Benutzer verwendet es immer noch). konstant 100% Last. es war meine Aufgabe, dieses Problem zu lösen.
was habe ich getan? zuerst herausfinden, warum es so langsam war. meine erste Vermutung war richtig, die auf Dich auf Anfrage auch verwendet typo3 (w / o-Caching, natürlich). durch diese einzelne Aktion mit einem benutzerdefinierten Skript zu ersetzen, die nur direkt auf die Datenbank abgefragt, typo3 Umgehung wurde das Problem gelöst. Last ging nach unten fast nichts. dauerte etwa 2 Stunden.

das andere Projekt hatte etwa 1500 Besucher pro Tag, Daten serverd mit Millionen von Zeilen von einer Oracle-Datenbank anzeigen und kompliziert nachzieht, dauerte ewig (= mehrere Sekunden) laufen zu lassen. Ich habe nicht viel Erfahrung Orakel bei der Optimierung, aber ich wusste: die Datenbank nur einmal aktualisiert wurde oder zweimal pro Woche. meine Lösung: i zwischengespeichert nur den Inhalt, indem Sie die HTML auf das Dateisystem zu schreiben. nach der Aktualisierung gelöscht i (in der Mitte der Nacht), den Cache und begann sie wieder aufzubauen. so, statt teurer Anfragen hatte ich gerade billig Dateisystem liest. Problem gelöst.

beiden Beispiele haben mich gelehrt, dass die Leistung in Web-Entwicklung ist nicht Raketenwissenschaft. die meiste Zeit ist die Lösung einfach. und: es gibt auch andere Teile, die viel wichtiger 99% der Zeit sind. Entwickler Kosten und Sicherheit

Andere Tipps

Die Frage ist ziemlich vage. Die meiste Zeit verbrachte eine Seite bekommen ist in der Regel statische Inhalte zu bekommen. Hier sind einige Faustregeln für die Beschleunigung Ladezeiten unabhängig von Sprache oder Rahmen:

  1. Installieren Sie den YSlow Plug-in für firefox
  2. Verwenden Sie CSS Sprites
  3. ein geringes Gewicht HTTP-Server für statische Inhalte haben, nginx oder lighttpd
  4. Serve statische Inhalte auf einer anderen Domain oder Sub-Domain, das mehr gleichzeitigen HTTP-Anfragen erlaubt
  5. Minify JavaScript und CSS
  6. Cache-Seiten so viel wie möglich
  7. Halten Sie die Anzahl von HTTP-Anfragen niedrig
  8. Ausführen pngcrush oder jpegtran auf Ihre Bilder

Das ist natürlich nur die Spitze des Eisbergs. Das sind gute erste Schritte.

Reduzieren Sie die Anzahl von Bibliotheken, sind Sie sicher, dass Sie Jquery + scriptalicious verwenden möchten. Halten Sie sich an einfache Dinge, schauen Sie nicht für komplexe Animationen.

Schneller Laden => Caching, Seiten mit Fotos sind gute Kandidaten für Cache.

Wenn das, was Sie sind besorgt ist über Gefühl Benutzer Geschwindigkeit, könnten Sie Bilder im Hintergrund im Vorgriff auf Benutzeraktionen vorzuladen wollen, aber denken, dass dies Ihre Serverauslastung erhöhen könnte. Tun Sie dies nur, wenn Sie eine gute Bandbreite unter Vertrag haben.

Wenn Sie in der Lage sind, einen Daumen nach Titelseite zu erzeugen, die ziemlich statisch ist, sagen Änderungen zweimal am Tag, Sie Sprite-Technik verwenden können Latenz Laden viele Daumen zu reduzieren, finden Sie unter:

http://websitetips.com/articles/css/sprites/

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