HTML5のポリフィルの意味は何ですか?私はHTML 5に関する多くのサイトでこのWordを見ました。 HTML5-Cross-Browser-Polyfills
そのため、ここでは、ネイティブにサポートされていないブラウザにHTML 5機能を埋め込むために、すべてのシム、フォールバック、およびポリフィルを集めています。
私は実際にpolyfillsの意味が理解できません。
それは新しいHTML 5技術なのか、それともJavaScriptライブラリーなのか?私はHTML 5の前にこのWordを聞いたことがありません。
そして、シム、フォールバック、ポリフィルの違いは何ですか?
ポリフィルはJavaScriptで作られたブラウザフォールバックであり、それはあなたが現代のブラウザで働くことを期待する機能が古いブラウザで働くことを可能にします、例えば、古いブラウザのキャンバス(HTML5機能)をサポートする。
これはHTML 5と組み合わせて使用されるので一種のHTML 5技法ですが、HTML 5の一部ではありません。また、HTML 5がなくてもポリフィルを作成できます(たとえば、必要なCSS 3技法をサポートするため)。
これは良い投稿です:
http://remysharp.com/2010/10/08/what-is-a-polyfill/
これがPolyfillsとShimsの包括的なリストです:
https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills
最初に、polyfilが何ではないのかを明確にしましょう。polyfillはHTML 5 Standardの一部ではありません。また、ポリフィルがJavascriptに限定されているわけでもありません。これらの文脈ではポリフィルが頻繁に参照されているのを見ます。
ポリフィル自体という用語は、「現在のブラウザや「最新の」ブラウザで期待される特定の機能を、その機能のサポートが組み込まれていない他のブラウザでも機能させることを可能にする」というコードです。
ここにpolyfillのソースと例:
http://www.programmerinterview.com/index.php/html5/html5-polyfill/
ポリフィルは、開発者がブラウザにネイティブで提供されることを期待しているテクノロジを提供するコード(またはプラグイン)です。
ポリフィルは、が元の呼び出しをに置き換えてシムを呼び出すシムです。
たとえば、navigator.mediaDevicesオブジェクトを使用したいが、すべてのブラウザがこれをサポートしているとは限らないとします。あなたはこのように使うかもしれないシムを提供するライブラリを想像することができます:
<script src="js/MediaShim.js"></script>
<script>
MediaShim.mediaDevices.getUserMedia(...);
</script>
この場合は、元のオブジェクトまたはメソッドを使用するのではなく、シムを明示的に呼び出しています。一方、polyfillは元のオブジェクトのオブジェクトとメソッドを置き換えます。
例えば:
<script src="js/adapter.js"></script>
<script>
navigator.mediaDevices.getUserMedia(...);
</script>
コード内では、標準のnavigator.mediaDevicesオブジェクトを使用しているように見えます。しかし、実際には、polyfill(この例ではadapter.js)がこのオブジェクトを独自のものに置き換えました。
それがそれに取って代わったのはシムです。これは、機能がネイティブにサポートされているかどうかを検出し、サポートされている場合はそれを使用し、サポートされていない場合は他のAPIを使用して回避します。
つまり、ポリフィルは一種の「透明な」シムです。そして、これがRemy Sharp(この用語を作った人)が "と言ったときに言ったことです。polyfillスクリプトを削除しても、polyfillが削除されても変更は必要ありません。"#:。