web-dev-qa-db-fra.com

Quelle est la signification de polyfills en HTML5?

Quelle est la signification de polyfills en HTML5? J'ai vu ce mot dans de nombreux sites sur HTML5, par exemple. HTML5-Cross-Browser-Polyfills.

Nous rassemblons donc ici toutes les casses, solutions de repli et polyfill afin d’implanter la fonctionnalité HTML5 dans des navigateurs qui ne les prennent pas en charge de manière native.

En fait, je n'ai pas compris quelle est la signification de polyfill.

Est-ce une nouvelle technique HTML5 ou une bibliothèque JavaScript? Je n'ai jamais entendu ce mot avant HTML5.

Et quelle est la différence entre les cales, les replis et les remplissages multiples?

366
Jitendra Vyas

Un polyfill est un repli de navigateur, créé en JavaScript, qui permet aux fonctionnalités que vous prévoyez de travailler dans les navigateurs modernes de fonctionner dans les navigateurs plus anciens, par exemple, de prendre en charge les canevas (une fonctionnalité HTML5) dans les navigateurs plus anciens.

C'est en quelque sorte une technique HTML5, car elle est utilisée avec HTML5, mais ne fait pas partie de HTML5 et vous pouvez avoir des remplissages multiples sans avoir HTML5 (par exemple, pour prendre en charge les techniques CSS3 que vous voulez).

Voici un bon post:

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

Voici une liste complète des Polyfills et Shims:

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

357
Calvin Froedge

Tout d'abord, clarifions ce qu'un polyfil n'est pas: un polyfill ne fait pas partie du standard HTML5. Un polyfill n'est pas non plus limité à Javascript, même si vous voyez souvent des polyfill être référencés dans ces contextes.

Le terme polyfill lui-même fait référence à un code qui "vous permet d’avoir certaines fonctionnalités spécifiques que vous attendez dans les navigateurs actuels ou" modernes "et qui fonctionnent également dans d’autres navigateurs qui ne prennent pas en charge cette fonctionnalité."

Source et exemple de polyfill ici:

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

60
Jarvis

Un polyfill est un morceau de code (ou plugin) qui fournit la technologie que vous, le développeur, attendez de la part du navigateur.

28
Ranjeet Mane

Un polyfill est une cale qui remplace l'appel d'origine avec l'appel d'une cale.

Par exemple, supposons que vous souhaitiez utiliser l'objet navigator.mediaDevices, mais que tous les navigateurs ne le prennent pas en charge. Vous pouvez imaginer une bibliothèque fournissant une cale que vous pourriez utiliser comme ceci:

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

Dans ce cas, vous appelez explicitement un calque au lieu d'utiliser l'objet ou la méthode d'origine. Le polyfill, en revanche, remplace les objets et les méthodes sur les objets d'origine.

Par exemple:

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

Dans votre code, il semble que vous utilisiez l'objet standard navigator.mediaDevices. Mais en réalité, le polyfill (adapter.js dans l'exemple) a remplacé cet objet par le sien.

Celui qu’il a remplacé est une cale. Cela détectera si la fonctionnalité est prise en charge de manière native et l’utilisera s’il le fait, ou le contournera en utilisant d’autres API si ce n’est pas le cas.

Ainsi, un polyfill est une sorte de cale "transparente". Et c'est ce que Remy Sharp (qui a inventé le terme) voulait dire en disant "si vous supprimiez le script polyfill, votre code continuerait à fonctionner, sans aucune modification, même si le polyfill avait été supprimé".

14
Richard Shepherd