web-dev-qa-db-fra.com

HTML5 Shim vs. Shiv

Débutant chez Rails.

Je code CSS dans mon exemple d'application. Je comprends qu'il existe du code Javascript pour aider les navigateurs, c'est-à-dire Internet Explorer, à prendre en charge HTML5.

Quelle est la différence entre HTML5 Shim et HTML5 Shiv? Est-ce quelque chose à savoir?

http://html5shim.googlecode.com/svn/trunk/html5.js

http://html5shiv.googlecode.com/svn/trunk/html5.js

Mon code, vous tous:

<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js">
</script>
<![endif]-->
47
owlstone

Il s'appelait à l'origine html5-shiv.

Shiv n'est vraiment pas le bon terme, car un shiv est un outil de poignardage.

Une cale est quelque chose que vous utilisez pour niveler les choses (ou les étayer). Si une table a un pied trop court, vous pouvez la caler avec un morceau de bois ou un annuaire téléphonique ...

Donc, html5-shim est destiné aux personnes qui s'attendent à ce que html5shiv soit appelé une cale.

C'est tout à fait ça, en ce qui concerne les différences.

Un peu comme polyfills couvre les différences d'implémentation des fonctionnalités.
En Amérique du Nord, Polyfill pourrait être appelé "Spackle".

77
Norguard

De http://code.google.com/p/html5shim/

shiv ou shim?

Question courante: quelle est la différence entre le html5shim et le html5shiv?
Réponse: rien, on a un m et on a un v - c'est tout.

22
Sander Luís

La réponse est.

Le terme shiv provient de John Resig , qui aurait utilisé le mot pour son sens d'argot, un objet tranchant utilisé comme une arme en forme de couteau, destiné à Internet Explorer. À vrai dire, John avait probablement l'intention d'utiliser le mot shim , ce qui en informatique signifie une solution de contournement de la compatibilité des applications. Plutôt que de corriger sa faute d'orthographe, la plupart des développeurs familiers avec Internet Explorer ont apprécié l'imagerie visuelle. Et cela, les enfants, c'est l'étymologie.

Depuis la page de l'auteur à https://github.com/aFarkas/html5shiv

11
Adriano Rosa

C'est probablement plus simple que ce que vous recherchez, mais pour d'autres qui peuvent être confus:

Tout d'abord, voici une définition sans programmation d'un Shim:

nom: une rondelle ou une mince bande de matériau utilisée pour aligner les pièces, les faire s'adapter ou réduire l'usure.

verbe: caler (quelque chose) ou remplir (un espace) avec une cale.

Pour comprendre une cale en termes de programmation, vous devez comprendre ce qu'est une douleur IE était/est pour les développeurs Web:

IE a été l'un des premiers navigateurs Web disponibles sur le marché. Et c'est peut-être le premier disponible "gratuitement". Ainsi, il a été construit avant que les standards du navigateur ne soient définis, c'est-à-dire des définitions de la façon de gérer le html et le javascript.

Donc, pour que les sites et les applications fonctionnent dans IE, au fur et à mesure que les normes étaient produites, IE ne pouvait pas ou (pour des raisons monopolistiques) ne mettait pas à jour IE ( voici un excellent article avec plus d'informations à ce sujet ). Cela a provoqué un fossé entre IE et d'autres navigateurs qui ont augmenté au fil du temps. Ce fossé est souvent apparu dans des erreurs inattendues, le style différences, et certaines applications ont refusé à leurs utilisateurs la possibilité de l'exécuter à partir d'autres navigateurs.

Mais, si un produit devait être disponible pour les deux types de navigateur, les développeurs devaient souvent écrire deux ensembles de code. Un pour pratiquement tous les navigateurs modernes et un pour IE. Évidemment, cette pratique a fait de l'entretien un cauchemar. Mais, au fil du temps, de nombreuses infrastructures/bibliothèques JavaScript ont commencé à ajouter du code pour résoudre spécifiquement ces problèmes. Ces morceaux de code sont appelés cales. Parce qu'ils rendent votre code "en forme" dans IE.

Par exemple, lorsque jQuery a été publié pour la première fois, un avantage majeur qu'il avait sur ses prédécesseurs - ou tout simplement d'écrire votre propre bibliothèque - était qu'il fonctionnait dans tous les navigateurs, même IE. À l'époque IE était encore très utilisé, cela a donc fait gagner beaucoup de temps aux développeurs. Mais maintenant jQuery est sur la version 3. Et la principale différence entre les versions précédentes est qu'il ne prend plus en charge IE. C'est parce que tout le monde, même Microsoft, s'est en quelque sorte éloigné de IE (le navigateur par défaut de Win10 est Edge). Mais, malheureusement, de nombreux sites et applications Web ont été conçus spécifiquement pour IE = (pour des raisons de sécurité). Et même si IE a fait le chemin du Dodo pour la plupart des applications commerciales, il offre toujours des fonctionnalités de sécurité que les autres navigateurs ne font pas (mais ils rattrapent leur retard) Et même s'ils le faisaient, le coût de mise à jour de ces applications est souvent trop élevé pour être justifié.

Et cela signifie essentiellement que de nombreuses personnes sont toujours obligées d'utiliser IE, donc ces cales sont toujours nécessaires.

0
Travis Heeter