Bildergalerie, Vorladen gegen AJAX

8

Hey, ich versuche eine Bildergalerie zu erstellen, aber ich bleibe stecken, ob ich alle Bilder laden soll, während die Seite geladen wird oder Ajax, um neue Bilder anzufordern, bevor sie in der Galerie angezeigt werden?

Das folgende Beispiel zeigt, dass ich das zweite Bild betrachte und zwei versteckte Bilder geladen habe, während Bild 5 über eine Ajax-Anfrage geladen wird. Ich dachte, wenn ich zwei geladene Bilder zwischen dem Bild, das angezeigt wird, und dem Bild, das AJAX lädt, haben, sollten Benutzer nicht ein Bild laden müssen

%Vor%

Ich habe nicht ajax off localhost verwendet, also nicht wissen, welche Art von Leistung hat es im Vergleich zu nur die Bilder mit der Seite zu laden und sie zu verstecken.

    
str11 07.01.2013, 04:16
quelle

3 Antworten

1

Sie können sich im Allgemeinen darauf verlassen, dass der Browser-Cache Bilder schnell lädt. Eine sehr zuverlässige Methode, die ich gefunden habe, ist Folgendes:

%Vor%

Dies erzeugt ein Bildelement, fügt es nicht an das DOM an, aber der Browser lädt das Bild trotzdem herunter und speichert es zwischen. Damit können Sie entweder das von Ihnen erstellte Bildelement anhängen oder ein neues Bildelement mit dieser Bildquelle verwenden und es sollte keine Ladeverzögerung auftreten.

Ich bin mir nicht sicher, was Sie meinen, wenn Sie mit Ajax laden. Da sich eine Ajax-Anfrage nicht von jeder anderen Anfrage unterscheidet, sollte es keinen Leistungsunterschied zwischen der Verwendung von "Ajax" und "einfachem Laden" der Bilder geben. Wenn Sie ein Skript verwenden, um das Bild auf irgendeine Weise zu laden, kann auf dem Server ein gewisser Aufwand auftreten.

    
Explosion Pills 07.01.2013 04:45
quelle
1

Letztendlich dauert das Laden bei der HTML-Parserzeit, die Verwendung von javascript / jquery preloading oder die Verwendung von ajax die gleiche Zeit, besonders wenn das Bild groß ist (wenn nicht, würden Sie nicht fragen?).

Das System muss eine Verbindung öffnen, eine GET-Anforderung für die Datei erstellen und die Datei wird über das Netzwerk übertragen. Wenn es zwischengespeichert wird, wird es nicht erneut übertragen. Die Netzwerkübertragung ist der Flaschenhals, und verschiedene Ladeverfahren ändern das nicht.

Sie beeinflussen die Wartezeiten Ihres Benutzers auf zwei Arten:

  • Verringern Sie die Größe Ihrer Medien, z. benutze Thumbnails, schlau mit Kompression, benutze große Dateien wieder, damit du das Caching ausnutzst ...

  • Zeit, die Ihr Bild laden sorgfältig, was ist, was Bildvorladung (mit oder ohne AJAX, es ist das gleiche) tut. Es ist wahrscheinlich, dass es unmöglich ist, genau zu wissen, wann ein Bild geladen werden muss, damit der Benutzer nicht warten muss. Das Laden von drei Bildern voraus, wie Sie vorschlagen, klingt gut für mich. Benutzer können gelegentlich warten, aber mehr ist Overkill.

Bei einer Bildschirmpräsentation könnten Sie über ein Array verfügen, das anzeigt, welche Bilder entladen, als Miniaturansicht oder vollständig geladen sind. Auf diese Weise stellen Sie sicher, dass Sie keine unnötigen Wiederholungsanfragen stellen.

Ich habe dir nicht wirklich eine magische Kugel gegeben ... Es gibt keine, aber ich hoffe, das hilft.

    
boisvert 07.01.2013 13:21
quelle
0

Ich habe schon diese Situation, in der ich auch beide Stichproben gefunden habe, finde die Lösung

Grundsätzlich können Sie für das Laden des einfachen Bildes [thumbnail image] die Seite lazy load verwenden

und für das Laden des großen oder Hauptbildes können Sie das Vorschaubild in das laden und nachdem Sie den Code zum Laden des großen Bildes in es schreiben können.

%Vor%

Möge dir das helfen

    
Harsh Chunara 07.01.2013 09:28
quelle

Tags und Links