検索
ホームページウェブフロントエンドjsチュートリアルHTML5クロスブラウザーポリフィルの初心者ガイド

A Beginner's Guide to HTML5 Cross-Browser Polyfills

キーポイント

  • PolyFillは、開発者が最新のWeb機能をサポートしていない古いブラウザでこれらの機能を使用できるツールであり、これらのブラウザのユーザーが機能やエクスペリエンスを失うことなくWebサイトにアクセスして使用できるようにすることができます。
  • polyfill.ioは、ポリフィルライブラリにオンデマンドで提供されるオープンソースプロジェクトであり、開発者は古いブラウザーとの互換性を維持しながら最新の標準を使用できるようにします。ユーザーエージェントHTTPヘッダーを読み取り、必要なポリフィルのみを提供するため、最新のブラウザーの膨張が減少します。
  • PolyFillは、古いブラウザで最新の機能を有効にするのに役立ちますが、Webページの重量を増やすなど、潜在的な欠点もあります。意図した目的のために、PolyFillの機能により、矛盾やエラーが発生します。

Webページは急速に開発されています。新しいフレームワーク、ツール、さらに言語さえも次々と出現しています。ただし、多くの開発者は、ユーザーの最も遅い速度で前進する必要があると感じています。最新のブラウザは「常緑樹」です。バックグラウンドで自動的に更新され、許可リクエストが必要なく、新しいAPIの改善に大きな進歩を遂げました。

ただし、最新のブラウザでさえ、すべての機能を同時に実装するわけではありません。現代の開発における最先端のテクノロジーに関する記事を読むことはイライラし、これらの技術は今後何年も利用できないことを発見します。 Webサイトの分析データをチェックして、IE9を使用しているユーザーがまだいることがわかったのでしょうか? 2011年のようにコードを書くか、すべてをjqueryまたはフレームワークに委任する必要がありますか?別のオプションがあります。それは

polyfill です。

ポリフィルとは何ですか?なぜそれらが必要なのですか?

レミーシャープは、2009年の本とブログ投稿でこの用語を造りました。この機能がブラウザに存在する場合、PolyFillはブラウザの操作を実行できない場合、PolyFillは不足している機能を補うことができます。彼らは、古いブラウザの脆弱性、今日使用したい不足している機能を埋めます。非ネイティブコードを使用して、ネイティブAPIをコピーします。

私たちが話している欠落している機能は何ですか?

2009年、ECMAScriptバージョン5がリリースされました。これは、言語にとって大きな根本的な進歩です。 ECMAScript 2015も同様の主要な更新をもたらしました。将来的には、この言語の改善は徐々に行われ、毎年起こります。これはエキサイティングな時期であり、新しい機能が常に言語に追加されています。コア言語自体に加えて、DOMおよびWebプラットフォーム用のさまざまなAPIがあります。最新のブラウザと古いブラウザの違いを強調するために、最新のChromeバージョンとInternet Explorer 9との比較を以下に示します(一部の企業はまだ残念ながら必須のサポートです)。 ECMAScript 6のサポートを示す表もあります。 2番目のテーブルはIE 11にのみ遡ります。ご覧のとおり、ES6機能はほとんどありません。これは多くの欠落している関数です...

polyfill and翻訳

したがって、上の表から、コードを翻訳する必要があることが明らかです。光沢のある新しい構文を取り、昔ながらのECMAScript 5を出力します。矢印関数、Async/async/await、RESTパラメーター、クラスなどを使用する場合は、コードでは、Babelなどのツールを使用してES6コードをES5に翻訳する必要があります。ただし、JavaScriptの構文をポリフィルすることはできません。 Babelは矢印機能を通常の機能に変換しますが、Polyfillはグローバルな範囲とネイティブプロトタイプにメソッドを追加します。 Babelは独自のES6 Polyfillを提供します。これは、Babel Webサイトで「PromiseやWeakMapなどの新しい組み込みオブジェクト、Array.fromまたはAssignなどの静的メソッド、Array.prototype.includesなどのインスタンスメソッドを提供します。したがって、ジェネレーター機能。しかし、それはたくさん見逃しています。クラスリストAPIを使用してクラスを追加および削除するか、MatchMediaをメディアクエリに使用しますが、IE9をサポートする必要があります。幸いなことに、バベルフィルカバーなどをすべて提供するサービスがあります。

polyfill.io

であなたの人生を簡素化します

polyfill.ioは、Financial Timesによって開発されたオープンソースプロジェクトです。現在、1日あたり最大2億2,000万件のリクエストを受け取り、「Polyfillの仕様ライブラリ」と呼んでいます。このオンデマンドのポリフィルシステムを使用すると、を閲覧できます。 理想的には、実際に使用したポリフィル関数のみが、特定のブラウザが実際に必要とするポリフィルのみを送信する必要があります。 polyfill.ioは両方のニーズを満たすことができます。このサービスは、ユーザーエージェントHTTPヘッダーを読み取り、最新のブラウザに肥大化したファイルを提供するのではなく、必要なコンテンツのみを提供するようにします。新しいブラウザはほぼ空のファイルを受信し、IEの古いバージョンは多くのコードを受信します。クエリ文字列で使用している機能のリストを指定することにより、古いマシンに送信されるコードの重量を減らすことができます。省略すると、一連のデフォルト値が使用されます。このサービスを使用するには、追加のブロックHTTPリクエストが必要ですが、私の意見では、その使いやすさは価値があります。 Googleエンジニアのフィリップウォルトンは、ポリフィルとパフォーマンスについて独自の視点を持っています。これは、追加のリクエストを心配している場合は読む価値があります。

何がカバーされませんか?

polyfill.ioは非常に包括的であり、FetchやPromisesなどの最先端のブラウザAPIが含まれています。ただし、新しいテクノロジーを試して使用できるポリフィルがたくさんあります。おそらく最もエキサイティングなのは、Webコンポーネントです。これは、スタイルのカプセル化と簡単な機能を提供する潜在的に革新的なフロントエンド開発の進歩です。クロスブラウザーのサポートがついに来ます。 Googleはポリマープロジェクトを強くプッシュしています。これは、基本的に大きなポリフィルの上に構築されたJavaScriptフレームワークです。ただし、Webコンポーネント自体に大きな可能性があるため、Webコンポーネントはこのフレームワークと同等であるべきではありません。ポリマーなしでコンポーネントを使用できますが、APIの完全な範囲はまだコピーされていません。 Web Animations APIは、JavaScriptを使用してアニメーションを構築するための効率的なライブラリフリーの方法を提供します。ブラウザのサポートはまだあまり良くありませんが、シムは信頼性が高いため、このテクノロジーを私が関わっているすべての制作サイトでアニメーションに自信を持って使用しました。 2つのオプションを提供します。1つは、特定のブラウザで現在利用可能な機能を埋めるためです。まだ確定されていない別の機能があり、それが私の最後のトピックに私をもたらしました...

"prolyfills":Emerging Apis

をテストします

およびprolyfills - が表示される可能性のあるAPIの投機的なシム。

Polyfillの未発表の機能は、概念の証明としてますます一般的になっており、フロントエンド開発のための最先端のテクノロジーを試すのは興味深いものです。人気のRXJSライブラリに触発されたObservablesの推奨事項をテストしたいですか?これにはプロリフィルがあります。新しいテクノロジーを試すことは、開発者であることの最もエキサイティングな部分の1つです。

結論

それだけです。ポリフィルが何であるか、なぜ必要なのか、polyfill.ioから必要なポリフィルを抽出する方法、およびPolyfillがまだ機能をリリースしていない方法を学びました。しかし、あなたはどうですか?サポートするすべてのブラウザで利用できる言語機能のみを使用していますか?または、最新のコードを書き、PolyFillを使用して古いブラウザーで機能させましたか?サポートする必要がある最古のブラウザは何ですか?以下のコメントで教えてください。

この記事は、グラハム・コックスによって査読されました。 SitePointコンテンツを最高の状態にしてくれたすべてのSitePointピアレビューアに感謝します! HTML5クロスブラウザーポリフィル

に関する

FAQ

HTML5クロスブラウザーポリフィルを使用する目的は何ですか?

HTML5クロスブラウザーポリフィルは、自分でサポートしていない古いブラウザで最新のWeb機能を有効にするために使用されます。それらはフォールバック関数として機能し、最新のブラウザーと同じ機能を提供します。これにより、古いブラウザのユーザーが機能性や経験を失うことなく、ウェブサイトまたはWebアプリケーションにアクセスして使用できるようになります。

私のWebプロジェクトにPolyFillを実装する方法は?

WebプロジェクトでPolyFillの実装は、いくつかのステップで構成されています。まず、ポリフィルする機能を決定する必要があります。次に、機能を提供するために適切なポリフィルを見つける必要があります。これは、ポリフィルライブラリまたはリポジトリをオンラインで検索することで実行できます。適切なポリフィルを見つけたら、スクリプトタグを使用してHTMLファイルに追加することにより、プロジェクトに含めることができます。

PolyFillを使用する潜在的な問題または短所は何ですか?

ポリフィルは非常に便利ですが、潜在的な欠点があります。主な問題の1つはパフォーマンスです。 PolyFillはページに余分な重量を追加します。これにより、読み込み時間が遅くなり、ユーザーエクスペリエンスに悪影響を与える可能性があります。また、すべてのポリフィルが同じではありません。ポリフィルとして設計されているものを完全にまたは正確にコピーしない場合があります。これにより、矛盾やエラーにつながる可能性があります。

私のニーズに合った適切なポリフィルを選択する方法は?

適切なポリフィルを選択すると、いくつかの要因に依存します。まず、ポリフィルを試しているものを検討し、その機能を正確に複製するポリフィルを見つける必要があります。また、ターゲットにしたいブラウザを検討し、ポリフィルがそれらをサポートすることを確認する必要があります。最後に、ポリフィルのサイズとパフォーマンスを考慮する必要があります。これらは、ウェブサイトの負荷時間と全体的なパフォーマンスに影響を与える可能性があるためです。

独自のポリフィルを作成できますか?

はい、独自のポリフィルを作成できます。これには、ブラウザが特定の機能をサポートしているかどうかをチェックし、ブラウザがそうでない場合はそれを提供するスクリプトを作成することが含まれます。ただし、独自のポリフィルを作成することは複雑で時間がかかる場合があり、多くの場合、既存のポリフィルを使用する方が簡単で効率的です。

ポリフィルを見つけるために利用できる人気のあるライブラリまたはリソースは何ですか?

ポリフィルを見つけるために利用できる人気のあるライブラリとリソースがいくつかあります。これらには、ブラウザが必要とするポリフィルを自動的に返すサービスを提供します。

PolyFillが適切に機能するかどうかをテストする方法は?

PolyFillのテストには、ターゲットにするブラウザで適切に動作するように設計されている機能を確認することが含まれます。これは、ブラウザテストツールを使用するか、さまざまなブラウザーで機能を手動でテストすることで実行できます。機能が予想どおりに機能する場合、PolyFillは適切に機能します。

PolyFillは、ReactやAngularなどのJavaScriptフレームワークで使用できますか?

はい、PolyFillは、ReactやAngularなどのJavaScriptフレームワークで使用できます。実際、これらのフレームワークは、多くの場合、最適な互換性とパフォーマンスのために特定のポリフィルを推奨し、さらに必要とします。これらのフレームワークを使用してPolyFillを実装するプロセスは、通常のWebプロジェクトでPolyFillの実装に似ています。

ポリフィルはブラウザの互換性の問題に対する長期的なソリューションですか?

PolyFillは、ブラウザ互換性の問題に対する短期的なソリューションのようなものです。ブラウザが追いつき、ネイティブにサポートするまで、特定の機能のブラウザのサポートギャップを埋めるために使用されます。ブラウザが進化し、更新され続けるにつれて、特定のポリフィルの需要が減少します。

ポリフィルとシムの違いは何ですか?

PolyFillとShimは、ブラウザでサポートされていない機能のバックアップ機能を提供するために使用されます。ただし、SHIMは通常、異なる既存のAPIを使用して欠落しているAPIのフォールバック機能を提供しますが、PolyFillはブラウザがネイティブであるかのように使用できる新しい実装を提供します。

以上がHTML5クロスブラウザーポリフィルの初心者ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PythonとJavaScript:それぞれの強みを理解するPythonとJavaScript:それぞれの強みを理解するMay 06, 2025 am 12:15 AM

PythonとJavaScriptにはそれぞれ独自の利点があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1. Pythonは、データサイエンスやバックエンド開発に適した簡潔な構文を備えた学習が簡単ですが、実行速度が遅くなっています。 2。JavaScriptはフロントエンド開発のいたるところにあり、強力な非同期プログラミング機能を備えています。 node.jsはフルスタックの開発に適していますが、構文は複雑でエラーが発生しやすい場合があります。

JavaScriptのコア:CまたはCの上に構築されていますか?JavaScriptのコア:CまたはCの上に構築されていますか?May 05, 2025 am 12:07 AM

javascriptisnotbuiltoncorc;それは、解釈されていることを解釈しました。

JavaScriptアプリケーション:フロントエンドからバックエンドまでJavaScriptアプリケーション:フロントエンドからバックエンドまでMay 04, 2025 am 12:12 AM

JavaScriptは、フロントエンドおよびバックエンド開発に使用できます。フロントエンドは、DOM操作を介してユーザーエクスペリエンスを強化し、バックエンドはnode.jsを介してサーバータスクを処理することを処理します。 1.フロントエンドの例:Webページテキストのコンテンツを変更します。 2。バックエンドの例:node.jsサーバーを作成します。

Python vs. Javascript:どの言語を学ぶべきですか?Python vs. Javascript:どの言語を学ぶべきですか?May 03, 2025 am 12:10 AM

PythonまたはJavaScriptの選択は、キャリア開発、学習曲線、エコシステムに基づいている必要があります。1)キャリア開発:Pythonはデータサイエンスとバックエンド開発に適していますが、JavaScriptはフロントエンドおよびフルスタック開発に適しています。 2)学習曲線:Python構文は簡潔で初心者に適しています。 JavaScriptの構文は柔軟です。 3)エコシステム:Pythonには豊富な科学コンピューティングライブラリがあり、JavaScriptには強力なフロントエンドフレームワークがあります。

JavaScriptフレームワーク:最新のWeb開発のパワーJavaScriptフレームワーク:最新のWeb開発のパワーMay 02, 2025 am 12:04 AM

JavaScriptフレームワークのパワーは、開発を簡素化し、ユーザーエクスペリエンスとアプリケーションのパフォーマンスを向上させることにあります。フレームワークを選択するときは、次のことを検討してください。1。プロジェクトのサイズと複雑さ、2。チームエクスペリエンス、3。エコシステムとコミュニティサポート。

JavaScript、C、およびブラウザの関係JavaScript、C、およびブラウザの関係May 01, 2025 am 12:06 AM

はじめに私はあなたがそれを奇妙に思うかもしれないことを知っています、JavaScript、C、およびブラウザは正確に何をしなければなりませんか?彼らは無関係であるように見えますが、実際、彼らは現代のウェブ開発において非常に重要な役割を果たしています。今日は、これら3つの間の密接なつながりについて説明します。この記事を通して、JavaScriptがブラウザでどのように実行されるか、ブラウザエンジンでのCの役割、およびそれらが協力してWebページのレンダリングと相互作用を駆動する方法を学びます。私たちは皆、JavaScriptとブラウザの関係を知っています。 JavaScriptは、フロントエンド開発のコア言語です。ブラウザで直接実行され、Webページが鮮明で興味深いものになります。なぜJavascrを疑問に思ったことがありますか

node.jsは、型を使用してストリーミングしますnode.jsは、型を使用してストリーミングしますApr 30, 2025 am 08:22 AM

node.jsは、主にストリームのおかげで、効率的なI/Oで優れています。 ストリームはデータを段階的に処理し、メモリの過負荷を回避します。大きなファイル、ネットワークタスク、リアルタイムアプリケーションの場合。ストリームとTypeScriptのタイプの安全性を組み合わせることで、パワーが作成されます

Python vs. JavaScript:パフォーマンスと効率の考慮事項Python vs. JavaScript:パフォーマンスと効率の考慮事項Apr 30, 2025 am 12:08 AM

PythonとJavaScriptのパフォーマンスと効率の違いは、主に以下に反映されています。1)解釈された言語として、Pythonはゆっくりと実行されますが、開発効率が高く、迅速なプロトタイプ開発に適しています。 2)JavaScriptはブラウザ内の単一のスレッドに限定されていますが、マルチスレッドおよび非同期I/Oを使用してnode.jsのパフォーマンスを改善でき、両方とも実際のプロジェクトで利点があります。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター