suchen
HeimWeb-FrontendCSS-TutorialOptimieren Sie die Bilder gemäß den Einschränkungen für Netzwerk- und Geräte in React

Optimieren Sie die Bilder gemäß den Einschränkungen für Netzwerk- und Geräte in React

Die Netzwerkkonnektivitätstechnologie hat seit der Geburt des Internets Erdschütteln verändert. Wir haben uns lange Zeit von der Ära des Wähler-Internetzugangs verabschiedet und können jetzt hochauflösende Videos in Mobilfunknetzen mit Smartphones ansehen. Aber nicht alle Verbindungen des Mobilfunknetzes sind gleich - Netzwerke der älteren Generation (3G, 2G usw.) dominieren immer noch, und fast die Hälfte der weltweiten Verbindungen gehört 2020 zu dieser Art von Netzwerk.

Leider ist der Prozess der Beseitigung alter Netzwerke sehr langsam, und viele Menschen auf der ganzen Welt stehen immer noch vor dem Problem des langsamen Seitenladens, das an die frühen Tage der Popularität des häuslichen Internets erinnert.

Moderne Websites sind ressourcenintensiv geworden, mit vielen Bildern und Animationen. Für Besucher, die Geräte mit niedrigem Performance und instabile Netzwerkverbindungen verwenden, kann eine normale Webseite eine Minute dauern, bis sie voll geladen werden. Dies liegt hauptsächlich daran, dass Entwickler dazu neigen, im Umgang mit Benutzerhardware- und Netzwerkbedingungen binäre Entscheidungen zu treffen: Geräte gehören entweder zur Kategorie Desktop -Kategorie oder zur Kategorie von Smartphones. Der Verbindungsstatus ist entweder online oder offline. Tatsächlich ist die Umgebung des Benutzers oft detaillierter und komplexer.

Können wir es besser machen?

Wie schlägt ich die Lücke zwischen den Benutzern, die Low-End-Geräte und instabile Netzwerkverbindungen verwenden? Zunächst müssen wir ihre spezifische Situation schnell bewerten, indem wir uns die folgenden zwei Eigenschaften ansehen:

  • navigator.deviceMemory
  • navigator.connection

Basierend darauf können wir uns entscheiden, die für die Bereitstellung von Bildqualität anpassen. Für JamStack -Websites und -Anwendungen, die auf der Serverseite gerendert werden, gibt es jedoch ein Problem - navigator -Objekte und andere Browser -APIs sind während der Rendering -Phase nicht verfügbar. Eine häufige Möglichkeit, dieses Problem zu lösen, besteht darin, viele reaktionsschnelle Bildmarker hinzuzufügen, aber dies bringt einen signifikanten Schmerzpunkt - ineffiziente Skalierung. Bild -CDNs wie Imagegine können dazu beitragen, dieses Problem und andere Fallstricke zu vermeiden, die mit reaktionsschnellen Bildern verbunden sind, da es das gesamte schwere Heben abwickelt, indem sofort automatische intelligente Anpassungen an den angeforderten Ressourcen vorgenommen werden.

In Bezug auf die Anpassung an Benutzernetzwerkbeschränkungen kann der Verbindungstyp erkannt werden und das Bild -CDN wird angewiesen, die Komprimierungsrate entsprechend der Verbindungsqualität zu ändern. So implementieren Sie dies in React:

 reagieren, {usestate, useEffect} aus 'React' '

const useconnectionType = (defaultConnectionType) => {

  const isupported = navigator? .Connection? .effectivetype
    ? WAHR
    : FALSCH

  const [ConnectionType, setNetworkStatus] = Usestate (
    ermittelt
      ? navigator.connection.effectivetype
      : defaultConnectionType
  )

  useEffect (() => {
    if (emittiert) {
      const {Verbindung} = Navigator
      const UpdateConnectionType = () => {
        setNetworkStatus (Connection.effectivetype)
      }

      Connection.AdDeVentListener ('Change', UpdateConnectionType)

      return () => {
        Connection.RemoveEventListener ('Change', UpdateConnectionType)
      }
    }
  }, [])

  return [ConnectionType, setNetworkStatus]
}

const imagecdnhost = 'images.foo.com'

Funktion ConnectionAWareComponent () {

  const [ConnectionType] = useConnectionType ())

  Lassen Sie komprimierende = 0

  Switch (ConnectionType) {
    Fall 'Slow-2G':
      komprimierende = 65
      brechen
    Fall '2G':
      komprimierende = 50
      brechen
    Fall '3G':
      komprimierende = 30
      brechen
    Fall '4G':
      komprimierende = 0
      brechen
  }

  Zurückkehren (
    <div>
      {/* Verwenden Sie dedizierte Anweisungen, um eine variable Komprimierung anzuwenden*/}
      <img  src="%7B%60%24%7BimageCDNHost%7D/?imgeng?=cmpr_%24%7BcompressionLevel%7D%60%7D" alt="Optimieren Sie die Bilder gemäß den Einschränkungen für Netzwerk- und Geräte in React" >
    </div>
  )
}

Wir können noch einen Schritt weiter gehen, unscharfen Bildern für Benutzer mit sehr langsamen Netzwerken bereitstellen und die Möglichkeit bieten, Versionen bei Bedarf mit höherer Auflösung herunterzuladen. Oder entwerfen Sie ein Leistungsbewertungssystem und passen Sie den gesendeten Inhalt basierend auf dem System an.

Auf der anderen Seite bedeutet Benutzer, dass sie eine "Hochgeschwindigkeit" -D-Verbindung 4G verwenden, nicht unbedingt, dass sie sich nicht für das Speichern von Daten interessieren, da sie die Website in einem Roaming-Status besuchen können. Durch die Aktivierung von Client -Eingabeaufforderungen auf der Website können der Site -Eigentümer das Vorhandensein eines Datensparenflags erkennen und die erforderlichen Schritte ausführen, um sich an die Einstellungen des Benutzers anzupassen.

Gründe für schnellere Bilder

Medium CPU, die richtige Menge an Speicher und Verbindungen mit niedriger Ebene sind keine fiktiven Einschränkungen. Sie stellen eine echte Benutzererfahrungsherausforderung dar, die Hunderte Millionen von Nutzern auf der ganzen Welt beeinflussen könnte. Einige Unternehmen integrieren ihre Produkte in ein integratives Erlebnis: Streaming -Dienste wie Netflix und Spotify stellen die Streaming -Qualität anhand Ihrer Netzwerkbedingung an, während viele andere hinter den Kulissen stehen, um das Bild für Benutzer automatisch zu optimieren.

In unterentwickelten Bereichen, in denen das Internet noch nicht beliebt ist, ist es möglicherweise nicht der Zielmarkt. Wenn Benutzer aus ländlichen Gebieten der Industrieländer eine Vollversion der Website erhalten, können sie eine unangenehme Erfahrung erleben. Wir können den gesendeten/angezeigten Inhalt mit einigen kleinen Anpassungen an den Benutzer anpassen.

Durch die Verwendung eines Bild -CDN wie Imagegine können Sie den Bildoptimierungsprozess vereinfachen und automatisch auf Client -Eingabeaufforderungen für Netzwerkbeschränkungen reagieren. Das Ergebnis ist eine bessere Erfahrung für netzwerkbeschränkte Besucher und ein eleganter Workflow für Entwickler.

Das obige ist der detaillierte Inhalt vonOptimieren Sie die Bilder gemäß den Einschränkungen für Netzwerk- und Geräte in React. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Hinzufügen von Kastenschatten zu WordPress -Blöcken und -ElementenHinzufügen von Kastenschatten zu WordPress -Blöcken und -ElementenMar 09, 2025 pm 12:53 PM

Die CSS-Box-Shadow- und Umrisseigenschaften haben Thema gewonnen. JSON-Unterstützung in WordPress 6.1. Sei ein paar Beispiele für die Funktionsweise in realen Themen und welche Optionen wir diese Stile auf WordPress -Blöcke und Elemente anwenden müssen.

Arbeiten mit GraphQL CachingArbeiten mit GraphQL CachingMar 19, 2025 am 09:36 AM

Wenn Sie kürzlich mit GraphQL gearbeitet oder seine Vor- und Nachteile überprüft haben, haben Sie zweifellos Dinge wie "GraphQL nicht unterstützen Caching" oder gehört

Machen Sie Ihren ersten Seltsamen -Sufle -ÜbergangMachen Sie Ihren ersten Seltsamen -Sufle -ÜbergangMar 15, 2025 am 11:08 AM

Die Sufelte Transition -API bietet eine Möglichkeit, Komponenten zu beleben, wenn sie das Dokument eingeben oder verlassen, einschließlich benutzerdefinierter Svelte -Übergänge.

Edle und coole CSS -Scrollbars: Ein SchaufensterEdle und coole CSS -Scrollbars: Ein SchaufensterMar 10, 2025 am 11:37 AM

In diesem Artikel werden wir in die Welt der Scrollbars eintauchen. Ich weiß, es klingt nicht zu glamourös, aber vertrau mir, eine gut gestaltete Seite geht Hand in Hand

Show, Don ' TellShow, Don ' TellMar 16, 2025 am 11:49 AM

Wie viel Zeit damit, die Inhaltspräsentation für Ihre Websites zu entwerfen? Wenn Sie einen neuen Blog -Beitrag schreiben oder eine neue Seite erstellen, denken Sie darüber nach

Aufbau einer Ethereum -App mit Redwood.js und FaunaAufbau einer Ethereum -App mit Redwood.js und FaunaMar 28, 2025 am 09:18 AM

Mit dem jüngsten Aufstieg von Bitcoins Preis über 20.000 USD und kürzlich von 30.000, dachte ich, es lohnt

Was zum Teufel haben NPM -Befehle?Was zum Teufel haben NPM -Befehle?Mar 15, 2025 am 11:36 AM

NPM-Befehle führen verschiedene Aufgaben für Sie aus, entweder als einmalige oder als kontinuierlich ausgeführter Vorgang für Dinge wie das Starten eines Servers oder das Kompilieren von Code.

Verwenden wir (x, x, x, x), um über Spezifität zu sprechenVerwenden wir (x, x, x, x), um über Spezifität zu sprechenMar 24, 2025 am 10:37 AM

Ich habe mich neulich mit Eric Meyer unterhalten und erinnerte mich an eine Eric Meyer -Geschichte aus meinen prägenden Jahren. Ich habe einen Blog -Beitrag über CSS -Spezifität geschrieben, und

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung