Chrome と Native Client について学んでいます。
基本的に、クロムによって
事前にレンダリングされるページの数を増やしたいと考えています(現在は 1 ページのみ)。
より多くのページをプリレンダリングできるように
する拡張機能を作成することを考えていました。
これは行く方法ですか、それともChromeにハードコーディングしてゼロから構築する必要がありますか? 編集この質問に対して報奨金を開始しました。ご意見をいただければ幸いです。
3 に答える
いいえ、行く方法はありません。Chrome でハードコーディングし、指摘したように再構築する必要があります。
おそらく既にご存じのとおり、Chromeは現在、事前にレンダリングできるページ数を制限していると明示的に述べています。
Chrome は、Chrome のインスタンスごとに最大 1 つの URL のみを事前レンダリングします (タブごとに 1 つではありません)。この制限は、場合によっては将来変更される可能性があります。
サポートされている APIまたは実験的な APIには、これを変更するためのアクセスを提供するものは何もありません。現在、Chrome には、これを変更できるトグルはありませんchrome://settings/
。chrome://flags/
ただし、Page Visibility APIを使用して、ページが事前にレンダリングされているかどうかを判断できます。
を使用して指定するページ上の 1 つのリソースに加えて、リソースのプリフェッチ<link rel="prerender" href="http://example.org/index.html">
を検討することもできます。
プリフェッチの問題は、指定された URL の最上位リソースのみをロードすることです。したがって、他のページをプリフェッチしようとすると、次のようになります。
<link rel="prefetch" href="http://example.org/index.html">
...その場合index.html
、ドキュメントに含まれるすべての CSS および JavaScript リンクではなく、リソースのみがプリフェッチされます。1 つの方法として、ページに含まれるすべてのリソースのタグを書き出すことが考えられlink
ますが、これは面倒で保守が困難になる可能性があります。
もう 1 つの方法は、現在のページの読み込みが完了するのを待ってから、JavaScript を使用して iframe を作成することです。この iframe はページ外に隠され、すべてのアセットをプリフェッチする URL を対象としています。ブラウザは URL のすべてのコンテンツをロードし、ユーザーがページにアクセスすると、そのコンテンツがキャッシュに保存されます。
を定義するタグを検索することでこれら 2 つのアプローチを組み合わせ、非表示の iframe を作成してアセットをダウンロードしてキャッシュするChrome 拡張機能もあります。link
prefetch
サイトをナビゲートするためのクライアント パフォーマンスを最適化することが目標である場合は、Single Page Application (SPA)スタイルの開発を使用する Web アプリケーションを作成して、JS と CSS の読み込みと実行の回数を減らすなど、他の代替手段があるかもしれません。あなたが Google のファンなら、AngularJsと呼ばれる SPA を構築するためのフレームワークをチェックしてみてください。
より多くのページを事前にレンダリングすることが良いアイデアである場合、Chrome はおそらく既にそれを行っているでしょう。あまりにも多くのページを事前にレンダリングすると、Web サイトの帯域幅が枯渇し、Web 全体の速度が低下する可能性があります。これは、達成しようとしているものとは逆です。したがって、単一ページのみを事前レンダリングできるのはおそらく意図的なものであり、それを壊そうとするべきではありません。