it-swarm-eu.dev

Geschwindigkeitsverbesserung auf Kosten der Nicht-Arbeit mit JS deaktiviert

Ich habe eine Bildergalerie, die derzeit die Bilder mit Standard-IMG-Tags lädt, und da sie viele große Bilder enthält, wird sie ziemlich langsam geladen.

Ich kann die Dinge beschleunigen, indem das Galerieskript die Bilder nach dem Laden der Seite dynamisch lädt. Ich habe dies getestet und es gibt einen signifikanten Leistungsgewinn. Das Problem ist, dass auf diese Weise das Bild nicht geladen wird, wenn der Benutzer JS deaktiviert hat.

Die Frage ist also: Ist es ein lohnender Kompromiss, Leistung zu erzielen, wenn die Seite nicht funktioniert, wenn JS deaktiviert ist?

In diesem speziellen Fall werde ich wahrscheinlich das Noscript-Tag verwenden, aber was ist, wenn ich keine Kontrolle über die HTML-Ausgabe hatte (etwa in einem CMS)?.

2
Sruly

Einige kurze Gedanken:

  • Gestalten Sie Ihre Benutzeroberfläche so, dass Sie nicht mehr als N Bilder laden müssen. Führen Sie beispielsweise die Paginierung ein.
  • Viele Browser rendern nur Bilder, die für den Benutzer sichtbar sind. Ziehen Sie in Betracht, die anderen Bilder auszublenden, indem Sie sie außerhalb des Bildschirms oder in ein Div mit Überlauf verschieben: versteckt oder so.
  • Laden Sie die ersten N Bilder auf pageload und anschließend den Rest. Das Laden der verbleibenden Bilder würde Javascript erfordern, und Sie könnten ein Noscript-Tag hinzufügen, das die Paginierung für die wenigen Benutzer hinzufügt, für die JS nicht aktiviert ist.
  • Kombinieren Sie die Bilder je nach Art der Bilder zu einem Sprite-Blatt und laden Sie sie alle als Hintergrundbilder unter Verwendung der Hintergrundposition in CSS, um nur die richtigen Teile anzuzeigen. Die Ladezeit im Voraus ist zwar hoch, aber zwischenspeicherbar.

Letztendlich kann ich nicht beantworten, ob das Ausschalten von JS ein lohnender Kompromiss ist, da ich nicht weiß, was Ihr Publikum ist. Ich würde mehr Informationen brauchen. In den meisten Fällen tendieren wir bei Websites, an denen ich gearbeitet habe, zu einer progressiven Verbesserung. Das dritte Beispiel in meiner Liste wäre also das, für das ich mich wahrscheinlich entscheiden würde.

4
Rahul

Was ist, wenn Sie JS nicht zum Laden von Bildern auffordern müssen, sondern die Bilder am Ende einer anderen Seite laden, damit sie bereits angezeigt werden, wenn Sie die Galerie anzeigen möchten. Sie möchten nur sicherstellen, dass die Bilder alle wichtigen Inhalte enthalten und dass Sie dieselben Namen verwenden, damit sie zwischengespeichert werden können.

Wenn Sie beim Laden mit JS bleiben möchten, würde ich empfehlen, zuerst nach JS zu suchen und das dynamische Laden zu verwenden, wenn sie JS unterstützen, und auf einen Standard zurückzugreifen, wenn sie kein JS haben.

1
LoganGoesPlaces

Sie können dies schrittweise tun. Das heißt, der anfängliche HTML-Code gibt wie jetzt IMG-Tags aus. Sofort beim Laden wird Ihre jQuery ausgelöst und ersetzt die IMG-Tags dynamisch durch Ihre benutzerdefinierten Loader. Beste aus beiden Welten.

1
Chase Seibert

Sogar die großen Unternehmen beginnen, Javascript zu benötigen. Wenn Sie beispielsweise Javascript im Internet Explorer deaktiviert haben, wussten Sie, dass Sie Google Chrome nicht einmal herunterladen können? Das Accept and Install Taste funktioniert nicht. Sie zeigen einfach diesen Text oben auf dem Bildschirm an:

Sie benötigen einen JavaScript-fähigen Browser, um diese Software herunterzuladen. Klicken Sie hier für Anweisungen wie Sie JavaScript in Ihrem Browser aktivieren.

Persönlich halte ich die Javascript-Anforderung für einen Fehler in diesem Szenario, aber ich schweife ab.

Natürlich hängt es von Ihrem Publikum ab, aber in den letzten Jahren habe auch ich einige Webschnittstellen erstellt, für deren Funktion Javascript erforderlich ist.

Das einzige verbleibende Problem ist SEO. Wenn Sie möchten, dass die Bilder in Ihrer Galerie von Google indiziert werden, müssen sie im HTML-Code angezeigt werden.

1
Steve Wortham

Die Frage "Was ist, wenn Javascript ausgeschaltet ist?" Sollte für sich alleine leben. Während Sie sicherstellen sollten, dass Ihre App/Site bei deaktiviertem JS weiterhin verwendet werden kann, sollten Sie auch darüber nachdenken, wer Ihre Zielgruppe ist. Ehrlich gesagt - es ist 2010 und Webentwickler sollten nicht einmal über dieses Problem nachdenken müssen (ich nicht mehr).

Verwenden Sie Analysen, um herauszufinden, ob Ihre Benutzer JS deaktiviert/aktiviert haben. Wenn es weniger als 5% Ihrer Benutzer sind, verschwenden Sie nicht einmal Zeit mit einer Problemumgehung.

1
abrudtkuhl