433 votes

Quelle est la différence entre une cale et un polyfill?

Les deux semblent être utilisés dans le développement web cercles, voir, par exemple, HTML5 Croix-Navigateur Polyfills, qui dit:

Donc, ici, nous recueillons toutes les cales, des issues, et polyfills...

Ou, il y a l' es5-shim projet.

Dans mon projet actuel, nous utilisons un certain nombre de ceux-ci, et je veux coller le tout dans le même répertoire. Alors, que dois-je appeler ce répertoire---shimsou polyfills?

416voto

Arsalan Ahmed Points 821

Appelez-le shims si vous voulez garder le répertoire générique. Un polyfill est un type de shim qui retrofit les navigateurs hérités avec des fonctionnalités HTML5 / CSS3 modernes utilisant généralement Javascript ou Flash. Un shim, d'autre part, se réfère à n'importe quel morceau de code qui effectue l'interception d'un appel d'API et fournit une couche d'abstraction. Il n'est pas nécessairement limité à une application Web ou HTML5 / CSS3.

101voto

Šime Vidas Points 59994

Ce que je comprends:

Un polyfill est un code qui détecte si un certain "attendu" de l'API est manquant et manuellement la met en œuvre. E. g.

if (!Function.prototype.bind) { Function.prototype.bind = ...; }

Une cale est le code qui intercepte les API existantes appels et met en œuvre des comportements différents. L'idée ici est de normaliser certaines Api à travers différents environnements. Ainsi, si deux navigateurs implémentent la même interface de programmation API différemment, vous pouvez intercepter les appels de l'API dans l'un de ces navigateurs et de rendre son comportement s'aligner avec les autres navigateur. Ou, si un navigateur a un bug dans l'une de ses Api, vous pouvez de nouveau intercepter les appels à l'API, puis contourner le bug.

68voto

Bergi Points 104242

Citant Axel Rauschmayer de son livre Parlant JavaScript:

  • Une cale est une bibliothèque qui apporte une nouvelle API, pour un ancien de l'environnement, à l'aide de seulement, les moyens de cet environnement.
  • Un polyfill est une cale d'épaisseur pour un navigateur de l'API. Généralement, il vérifie si un navigateur prend en charge une API. Si ça ne marche pas, le polyfill installe son propre la mise en œuvre. Qui vous permet d'utiliser l'API dans les deux cas. L' terme polyfill vient d'une maison d'amélioration du produit; selon Remy Sharp:

    Polyfilla au royaume-UNI, produit connu sous le nom Spackling Coller dans le NOUS. Avec cela à l'esprit: pensez à les navigateurs comme un mur avec des fissures. Ces [polyfills] aider à lisser les fissures et nous donner une belle paroi lisse des navigateurs de travailler avec.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X