418 Stimmen

Was ist die Bedeutung von Polyfills in HTML5?

Was ist die Bedeutung von Polyfills in HTML5? Ich habe dieses Wort auf vielen Seiten über HTML5 gesehen, z.B. HTML5-Cross-Browser-Polyfills.

Hier sammeln wir also alle Shims, Fallbacks und Polyfills um HTML5-Funktionen in Browsern zu implementieren, die sie nicht nativ unterstützen.

Ich habe eigentlich nicht verstanden, was die Bedeutung von Polyfills ist.

Handelt es sich um eine neue HTML5-Technik oder eine JavaScript-Bibliothek? Ich habe dieses Wort vor HTML5 noch nie gehört.

Und was ist der Unterschied zwischen Shims, Fallbacks und Polyfills?

408voto

Calvin Froedge Punkte 15523

Ein Polyfill ist ein in JavaScript erstellter Browser-Fallback, der es ermöglicht, dass Funktionen, die in modernen Browsern erwartet werden, auch in älteren Browsern funktionieren, z. B. um Canvas (eine HTML5-Funktion) in älteren Browsern zu unterstützen.

Es ist eine Art HTML5-Technik, da sie in Verbindung mit HTML5 verwendet wird, aber sie ist nicht Teil von HTML5, und man kann Polyfills haben, ohne HTML5 zu haben (zum Beispiel, um gewünschte CSS3-Techniken zu unterstützen).

Hier ist ein guter Beitrag:

http://remysharp.com/2010/10/08/what-is-a-polyfill/

Hier finden Sie eine umfassende Liste von Polyfills und Shims:

https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills

68voto

Jarvis Punkte 671

Lassen Sie uns zunächst einmal klären, was ein Polyfil nicht ist: Ein Polyfill ist nicht Teil des HTML5-Standards. Ein Polyfill ist auch nicht auf Javascript beschränkt, auch wenn Sie oft sehen, dass Polyfills in diesem Zusammenhang erwähnt werden.

Der Begriff Polyfill selbst bezieht sich auf einen Code, der es Ihnen ermöglicht, eine bestimmte Funktionalität, die Sie in aktuellen oder "modernen" Browsern erwarten, auch in anderen Browsern zu nutzen, die keine Unterstützung für diese Funktionalität eingebaut haben. "

Quelle und Beispiel für Polyfill hier:

http://www.programmerinterview.com/index.php/html5/html5-polyfill/

48voto

Ranjeet Mane Punkte 471

Ein Polyfill ist ein Stück Code (oder ein Plugin), das die Technologie bereitstellt, die Sie, der Entwickler, vom Browser erwarten.

17voto

Richard Shepherd Punkte 1260

Ein Polyfill ist eine Unterlage, die Ersetzt die ursprüngliche Aufforderung mit der Aufforderung zu einer Unterlegscheibe.

Nehmen wir an, Sie möchten das navigator.mediaDevices-Objekt verwenden, aber nicht alle Browser unterstützen dies. Sie könnten sich eine Bibliothek vorstellen, die ein Shim bereitstellt, das Sie wie folgt verwenden könnten:

<script src="js/MediaShim.js"></script>
<script>
    MediaShim.mediaDevices.getUserMedia(...);
</script>

In diesem Fall rufen Sie explizit ein Shim auf, anstatt das Originalobjekt oder die Originalmethode zu verwenden. Das Polyfill hingegen ersetzt die Objekte und Methoden der Originalobjekte.

Zum Beispiel:

<script src="js/adapter.js"></script>
<script>
    navigator.mediaDevices.getUserMedia(...);
</script>

In Ihrem Code sieht es so aus, als ob Sie das Standard navigator.mediaDevices Objekt verwenden. Aber in Wirklichkeit hat das Polyfill (adapter.js im Beispiel) dieses Objekt durch sein eigenes ersetzt.

Das Teil, das es ersetzt hat, ist eine Unterlegscheibe. Dieser erkennt, ob die Funktion nativ unterstützt wird, und verwendet sie, wenn dies der Fall ist, oder er umgeht sie mit anderen APIs, wenn dies nicht der Fall ist.

Ein Polyfill ist also eine Art "transparente" Zwischenlage. Und das ist es, was Remy Sharp (der den Begriff geprägt hat) meinte, als er sagte: " wenn Sie das Polyfill-Skript entfernen, würde Ihr Code weiterhin funktionieren, ohne dass Änderungen erforderlich sind, obwohl das Polyfill entfernt wurde ".

3voto

Baharika Sopori Punkte 31

A Polyfill in der Webentwicklung ist Code, der eine Funktion auf Webbrowsern implementiert, die diese Funktion nicht unterstützen. In der Regel handelt es sich dabei um eine JavaScript-Bibliothek, die einen HTML5- oder CSS-Webstandard implementiert, entweder einen etablierten Standard (der von einigen älteren Browsern unterstützt wird) oder einen vorgeschlagenen Standard (der von keinem Browser unterstützt wird) für bestehende Browser. "Ein Polyfill ist ein Shim für eine Browser-API", heißt es in der Definition.

Der HTML5-Standard enthält kein Polyfill. Polyfills sind nicht auf Javascript beschränkt, auch wenn sie in diesem Zusammenhang häufig erwähnt werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X