Webshims Polyfill verwenden

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Der folgende Beitrag ist ein Gastbeitrag von Daniel Herken. Daniel ist der Autor des kommenden Buches The Cross Browser Handbook. Er hat mir kürzlich eine E-Mail geschrieben, um es zu teilen und auch einen Gastbeitrag anzubieten. Er war begeistert von Webshims Lib – eine Art "alles" Polyfill. Das Folgende ist dieser Gastbeitrag, der diese Bibliothek und ihre grundlegende Verwendung vorstellt.

In diesem Beitrag werde ich über die Polyfill-Bibliothek für HTML5- und CSS3-Funktionen namens Webshims Lib sprechen und wie man sie richtig verwendet.

Polyfill?

In der Webentwicklung nennen wir Skripte, die Teile der HTML5- oder CSS3-Spezifikation emulieren, „Polyfills“. Ein Polyfill kann fast alles sein – eine JavaScript-Bibliothek, die Unterstützung für CSS3-Selektoren zu älteren Versionen von Internet Explorer hinzufügt (z. B. Selectivizr) oder eine High-End-Flash-basierte Lösung, um die Tags <audio> und <video> bis zurück zu IE 6 zu aktivieren (z. B. html5media).

Webshims vorstellen

Die Webshims Lib ist eine der umfassendsten Polyfills, die es gibt. Sie basiert auf jQuery und Modernizr. Durch das Einbinden dieses *einen* Skripts werden viele Funktionen in allen gängigen Desktop-Browsern aktiviert.

Webshims ermöglicht HTML5- und CSS3-Funktionen wie semantische Tags, Canvas, Web Storage, Geolocation, Formulare und Multimedia. Wenn man diese lange Liste liest, kommt einem vielleicht als Erstes in den Sinn, wie riesig diese Bibliothek sein muss. Das bedeutet eine riesige Downloadgröße und lange Skriptausführungszeiten. Aber hier ist der Clou: Webshims erkennt automatisch, welche Funktionen der Browser des Benutzers unterstützt, und lädt nur das, was zur Simulation aller anderen notwendig ist. So werden Benutzer, die bereits einen modernen Browser wie Firefox oder Chrome verwenden, nicht verlangsamt. Sie können sogar die Menge der zu ladenden Funktionen reduzieren, wenn Sie nicht alles benötigen.

Webshims verwenden

Um die Webshims-Bibliothek zu verwenden, müssen Sie die Abhängigkeiten jQuery und Modernizr zusammen mit Webshims Lib einbinden.

<script src="scripts/jquery-1.8.2.min.js"></script>
<script src="scripts/modernizr-custom.js"></script>
<script src="scripts/webshim/polyfiller.js"></script>

Jetzt müssen Sie WebShims initialisieren und, falls erforderlich, ihm mitteilen, welche Funktionen Sie verwenden möchten.

<script>
    // Polyfill all unsupported features
    $.webshims.polyfill();	
</script>
<script>
    // Polyfill only form and canvas features
    $.webshims.polyfill('forms canvas');	
</script>

Und das ist alles! Webshims erkennt und polyfillt fehlende Funktionen automatisch je nach Browser des Benutzers. Wenn Sie neugierig sind, ist die vollständige Liste der Funktionen:

  • json-storage
  • es5
  • geolocation
  • canvas
  • Formulare
  • forms-ext
  • mediaelement
  • track
  • details

Beispiel

Machen wir ein Beispiel mit dem Tag <video>. Zuerst erstellen wir die grundlegende Seite ohne Webshims oder andere Polyfills.

<!DOCTYPE html>
<html>
<head>
  <title>Video native</title>
</head>
<body>
  <video width="480" height="360" controls="controls">
    <source src="Video.mp4" type="video/mp4">
    <source src="Video.webm" type="video/webm">	
  </video>
</body>
</html>

Moderne Browser werden dieses Video korrekt anzeigen, aber Internet Explorer 6, 7 oder 8 nicht.
Jetzt ändern wir das Beispiel, um die Webshims Lib einzubetten. Sie sehen, dass es nicht notwendig ist, sonst etwas zu ändern.

<!DOCTYPE html>
<html>
<head>
  <title>Video including polyfill</title>
  <script src="scripts/jquery-1.8.2.min.js"></script>
  <script src="scripts/modernizr-custom.js"></script>
  <script src="scripts/webshim/polyfiller.js"></script>
  <script>
    $.webshims.polyfill('mediaelement');
  </script>
</head>
<body>
  <video width="480" height="360" controls="controls">
    <source src="Video.mp4" type="video/mp4">
    <source src="Video.webm" type="video/webm">	
  </video>
</body>
</html>

Der moderne Browser wird seinen nativen <video>-Player anzeigen, aber jetzt ist diese Funktionalität auch in Internet Explorer 6+ verfügbar. Sie können die Demo hier ausprobieren.

Fazit

Wie das Beispiel gezeigt hat, ist die Verwendung der Webshims Lib wirklich einfach. Es ist nicht notwendig, Ihren Code zu ändern, und es verlangsamt keine Benutzer, die einen modernen Browser verwenden. Es ermöglicht jedem, alle Funktionen zu genießen, die Ihre Seite bietet. Besuchen Sie die Webshims-Homepage für den Download, die Dokumentation und weitere Demos.