このようにすべてのcssリンクに属性rel = "preload"を追加しました。
<link rel='preload' onload='this.rel="stylesheet"' as='style'
id='reworldmedia-style-css' href='style.css' type='text/css' media='all'
/>
Chromeでは正常に機能しますが、SafariまたはFirefoxでは機能しません
Firefoxの場合、これは Firefox 56 Nightlyでのみサポートされます。 2017年9月26日 に発送されます。 こちら からダウンロードできます。
更新:この機能はFF 56に導入されましたが、57で削除されました。 ここ が理由です:
この機能はFirefox 56で利用できましたが、キャッシュ可能なリソースに対してのみでした。さまざまなWeb互換性の問題(たとえば、バグ1405761)のため、Firefox 57では無効になっています。キャッシュ不可のリソースで機能する改善されたバージョンは、Firefox 59にリリースされる予定です。
LoadCSSを使用してブラウザー間で確実にプリロードする
プリロードの1つの問題は、FirefoxやInternet Explorerなどのブラウザーではサポートされていないことです(2018年11月現在)。その結果、これらのブラウザーはCSSファイルをダウンロードしないため、Webページの表示に深刻な問題が発生する可能性があります。これにより、プリロード用のJavaScriptポリフィルを含めることが重要になります- loadCSS 。
<style>
[Your critical CSS goes here]
</style>
<!– Reliably defer loading of non-critical CSS with loadCSS–>
<link rel=“preload” href=”[yourcssfile]” as=“style” onload=“this.onload=null; this.rel=‘stylesheet’”>
<noscript><link rel=“stylesheet” href=”[yourcssfile]” ></noscript>
<!– Inline the loadCSS preload polyfill code or load it via external JS file–>
<script src=“./cssrelpreload.js”></script>
ドキュメンテーション自体よりも説明的なものは考えられません。 caniuse.comサイトには、これがあります http://caniuse.com/#feat=link-rel-preload に従ってください。これに従って、w3c仕様にアクセスすると、これが見つかります。 https://w3c.github.io/preload/ 「これは進行中の作業であり、予告なしに変更される可能性があります」と明記されています。この「ドラフト」が洗練されるとすぐに、サポートが追加されます。
おそらく最善の解決策は、以下のように2つのファイルをロードすることです。プリロードをサポートするブラウザーは、意図したとおりにそれを使用し、そうでないもの(Firefoxなど)は、通常の(2番目のリンク)のみを使用します。このソリューションでは、プリロードの直後にスタイルが使用されるため、onload="this.rel='stylesheet'"
を使用する必要はありません。
<head>
<link rel="preload" href="style.css" as="style">
<link rel="stylesheet" href="style.css">
</head>
これは機能します<link rel="preload stylesheet" href="./style.css" as="style">
は、主要なリソースをできるだけ早くダウンロードするようブラウザに指示します。