良いプログラマの Webフロントエンドのチュートリアルシェアロード非同期 CSSのいくつかの方法を、私たちはページを書くとき、私たちは、最も重要なタスクを実行するページのパフォーマンスと柔軟性読み込み速度を向上させることである遅らせることなくページへのプレゼンテーションのためにフォームをロードする CSSを。これは、あるには、デフォルト
- ブラウザの同期外部負荷の CSS
- ダウンロードしてCSSを解析する際には、すべてのページのレンダリングに影響を及ぼし
どちらも、潜在的な遅れにつながることができます。
もちろん、これはあなたがページをレンダリングを開始する前に、あなたがすべき少なくとものサイト読み込む CSSの一部を、そしてすぐに初期CSSブラウザに追加するために、我々はインラインCSSをお勧めします。場合だけでは十分ではなくなり、全体的なサイトの数が少ないため、大きなCSSは(例えば、15より大きい20キロバイトまで)優先することで、パフォーマンスを助けることができる、それを破ります。分割した後、それは-aka背景にあるべきではそれほど重要で読み込む CSSの非同期。この記事では、私の目標は私を記述することであるに好ましい方法、実際には既に存在し、これらの日、時間の長い期間のために。
そこ非同期ロードのいくつかの方法にしている CSSは、しかし、あなたが期待するようがない方法として、直感的。そして、スクリプトの異なる、なしの要素非同期または延期の属性は、単に長年にわたって、我々はloadCSSプロジェクト維持しているので、要素をリンクするために適用することができ、非同期ロードされている CSSのプロセスをより簡単に。最近では、ブラウザ標準化されていないの CSSの負荷の動作を、したがって、もはや彼らのわずかな違いに対処するために、このloadCSSのように専用のスクリプトが必要な場合があります。
今日、我々はブラウザの様々な対処する方法を学びましたリンク要素の属性のいくつかの知識を、我々は短い非同期ロードのCSSのHTMLを通じて結果を得ることができます。ここでは、それが最も簡単な方法は非同期ロードのスタイルシートは、次のとおりです。
<リンクのrel = "スタイルシート" のhref = "/スタイル/ index.css" メディア= "印刷" のonload = "this.media = 'すべて'">
このラインシンプルなHTMLが、それは非常に直感的ではないのですが、それではここで何が起こったのかを打破しましょう。
まず、リンクのメディアは、印刷するように設定属性。「印刷」はメディアタイプである、それは、言い換えれば、彼らは、ユーザーがページを印刷しようとしたときに適用される「ルールベースの印刷メディアは、このスタイルシートを適用する」と言います。ブラウザがロードされます:確かに、私たちは私たちのスタイルシートは、私たちは興味深く、有益な効果を得ることができ、すべてのメディア(特にスクリーン)だけではなく、印刷に適用されますが、メディアタイプと一致していない現在の環境を宣言したいです遅延ページのレンダリングせずにスタイルシート、非同期!これは便利ですが、我々はそれらのすべてを望んでいないものを。また、実際のCSSをロードした後ことを願っていますに適用されるスクリーン環境。この目的のために、我々は使用することができ、すべてのロードを完了するためにメディアの設定をリンクするためにonload属性を。
古いレシピかけて導入、私たちは新しい処方箋を見てみましょう、そう、同じ!過去2年間で、我々は、使用している上記モード(RELスイッチング特性は、メディア属性がロードされていない)と同様のリンク[REL =プリロード](代わりのrel =スタイルシート)を達成しました。まだ働くことができるこの方法を使用して、しかし、我々はいくつかの欠点は、使用をプリロードを検討する必要があります。あなたが(例えば記入し、クロスブラウザを得るためにそれに依存しており、スタイルシートを適用したいので、もしまず、ブラウザがまだ荷重支持のために特に良好ではない必要があるloadCSSを)。さらに重要なことは、ということです最高の優先度、PRELOADは、可能な限り早期にファイルを取得し、他の重要なダウンロードに優先権を与えることができ、実際に非クリティカルなCSSよりも高い優先順位が必要な場合があります。
あなたが提供する高い優先度を抽出したいことが起こる場合は幸いなことに、(それをサポートするブラウザで)のrel =予圧を、あなたは上記のモードとそれを組み合わせることができます。
<= "スタイル" のonload = "this.rel = 'スタイルシート'" としてリンクのrel = "プリロード" のhref = "スタイル/ index.css">
これは、以前のメソッドああと違いはありません!はいそれはありませんが、文法の一部を、その後、さらに良いです。他には、このプロパティのよう=「スタイル」を見つけ、そうではないだけプリロードされますあなたは慎重に指していることであるCSSファイルで使用できますが、リソースファイルの大半で使用することができます。
<= "スクリプト" としてリンクのrel = "プリロード" のhref = "スタイル/ index.css">
私たちは、作成することができ、それを指すようにスクリプトタグを:
VARスクリプト=のdocument.createElement( "スクリプト");
script.src = "scriptfile.js"。
document.body.appendChild(スクリプト);
負荷が良いされていたため、要求を送信しないキャッシュから直接この時点で、このファイルをブラウザしてください。
だから、属性としてどのようなリソースファイルは、それをサポートするためにプリロード?以下は、
- フォント
- 画像
- オブジェクト
- スクリプト
- スタイル
ちょうどGoogleのそれはあまりにも完璧なサポートを行うために、あまり考えてはいけません。
また、使用することができます達成するためにJavaScriptを:
$(ウィンドウ).LOAD(関数(){
//非同期遅延ロードパターン
VARリンク= $( '</リンク>');
link.attr( 'のhref'、 '/styles/index.css');
link.attr( '相対'、 'スタイルシート');
link.appendTo($( '頭'));
link.load(関数(){
console.info( 'が正常にロードされました...');
});
このコンテンツは、擬似オリジナルの記事で、ソースを明記してください。