404

HTML5のポリフィルの意味は何ですか?HTML5に関する多くのサイトでこの単語を見ました。たとえば、HTML5-Cross-Browser-Polyfillsです。

そこで、ここでは、ネイティブでサポートされていないブラウザにHTML5機能を組み込むために、すべてのシム、フォールバック、およびポリフィルを収集しています。

ポリフィルの意味がよくわかりません。

それは新しいHTML5テクニックですか、それともJavaScriptライブラリですか?HTML5の前にこの言葉を聞いたことがありません。

そして、シム、フォールバック、ポリフィルの違いは何ですか?

4

6 に答える 6

398

ポリフィルはJavaScriptで作成されたブラウザーのフォールバックであり、最新のブラウザーで機能することが期待される機能を古いブラウザーで機能させることができます。たとえば、古いブラウザーでキャンバス(HTML5機能)をサポートできます。

HTML5と組み合わせて使用​​されるため、一種のHTML5テクニックですが、HTML5の一部ではなく、HTML5がなくてもポリフィルを使用できます(たとえば、必要なCSS3テクニックをサポートするため)。

ここに良い投稿があります:

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

ポリフィルとシムの包括的なリストは次のとおりです。

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

于 2011-08-17T02:32:22.147 に答える
66

まず、ポリフィルが何でないかを明確にしましょう。ポリフィルはHTML5標準の一部ではありません。また、これらのコンテキストでポリフィルが参照されることがよくありますが、ポリフィルはJavascriptに限定されていません。

ポリフィルという用語自体は、「現在のブラウザまたは「最新の」ブラウザで期待される特定の機能を、その機能が組み込まれていない他のブラウザでも機能させることができる」というコードを指します。

ここでのポリフィルのソースと例:

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

于 2013-09-16T23:08:22.480 に答える
40

ポリフィルは、開発者であるユーザーがブラウザーにネイティブに提供することを期待するテクノロジーを提供するコード(またはプラグイン)の一部です。

于 2016-06-10T09:16:40.560 に答える
17

ポリフィルは、元の呼び出しをシムへの呼び出しに置き換えるシムです。

たとえば、navigator.mediaDevicesオブジェクトを使用したいが、すべてのブラウザがこれをサポートしているわけではないとします。次のように使用できるシムを提供するライブラリを想像できます。

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

この場合、元のオブジェクトまたはメソッドを使用する代わりに、明示的にシムを呼び出しています。一方、ポリフィルは、元のオブジェクトのオブジェクトとメソッドを置き換えます。

例えば:

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

コードでは、標準のnavigator.mediaDevicesオブジェクトを使用しているように見えます。しかし実際には、polyfill(例ではadapter.js)がこのオブジェクトを独自のオブジェクトに置き換えています。

交換したのはシムです。これにより、機能がネイティブにサポートされているかどうかが検出され、サポートされている場合は使用されます。サポートされていない場合は、他のAPIを使用して回避されます。

したがって、ポリフィルは一種の「透明な」シムです。そして、これは、「ポリフィルスクリプトを削除した場合、ポリフィルが削除されても変更を必要とせずにコードが機能し続ける」と言ったときにRemy Sharp(この用語を作り出した)が意味したことです。

于 2016-12-06T13:32:25.777 に答える
2

Web開発のポリフィルは、機能をサポートしていないWebブラウザーに機能を実装するコードです。これは通常、HTML5またはCSS Web標準を実装するJavaScriptライブラリを指します。これは、確立された標準(一部の古いブラウザでサポート)または既存のブラウザで提案された標準(どのブラウザでもサポートされていません)です。定義によれば、「ポリフィルはブラウザAPIのシムです」。

HTML5標準にはポリフィルは含まれていません。ポリフィルは、そのコンテキストで頻繁に言及されているという事実にもかかわらず、Javascriptに限定されていません。

于 2021-06-29T11:52:23.787 に答える
0

他の答えとは別に、役立つかもしれないいくつかの高レベルの考えと情報があります。

ポリフィルは、特定のブラウザの互換性パッチのようなものです。シムは特定の引数への変更です。@mediaqueryがブラウザと互換性がない場合は、フォールバックを使用できます。

これは、アプリ/ウェブサイトとの互換性が必要な要件によって異なります。

特定のライブラリと特定のブラウザとの互換性については、このサイトをチェックしてください。 https://caniuse.com/

于 2020-10-11T23:05:32.720 に答える