GoogleはNever-Slow Modeと呼ばれるプロトタイプ機能に取り組んでいる。このプロトタイプ機能はChromium プロジェクトでコミット作業進行中であり、ユーザーエクスペリエンスの向上、一貫性のある迅速なブラウジングの提供を目的としている。
w3schoolsによると、Google Chromeは70%以上のマーケットシェアを持ち、次いでFirefoxが10%、Internet Explorer / Edgeが4%である。Googleサービスとの同期や数千もの拡張機能など、一連の機能によってGoogle Chromeが最上位に君臨している。さらにGoogleはブラウザ上で動作するアプリを多数提供しており、絶えずWebサイトのパフォーマンスを向上させるための取り組を実施し、Webページ読み込み遅延の短縮とWebセキュリティの改善に重点を置いたHTTPトラフィックを操作するSPDYプロトコルなどの新しいスペックやツールに貢献している。
GoogleのNever-Slow Modeは一般的な方法で、CSS、画像、大規模なスクリプトなどのリソースを制限するバジェットを導入している。Alex Russell氏によると、これらのバジェットはメインスレッドをきれいに維持するために設計されている。
現在のところNever-Slow Modeは、大きなスクリプトをブロックし、特定のリソースタイプ(スクリプト、フォント、CSS、画像)へのバジェット設定、document.write()の無効化、同期XHRの上書き、クライアントヒントの全面的な有効化、 `Content-Length`が設定されていないリソースのバッファを実施しています。バッファはインタラクション(クリック/タップ/スクロール)で再設定されます。長いスクリプトタスク(200ミリ秒以上)は、次のインタラクションまですべてのページの実行を一時停止します。
これらの上限はworkerには適用されず、サイズ上限はService Worker Cache Storageからロードされたリソースに対しては引き上げられる。現在の上限は次の通り。
Per-image max size: 1MiB Total image budget: 2MiB Per-stylesheet max size: 100KiB Total stylesheet budget: 200KiB Per-script max size: 50KiB Total script budget: 500KiB Per-font max size: 100KiB Total font budget: 100KiB Total connection limit: 10 Long-task limit: 200ms
バジェットを超えてブラウザによってブロックされたリソースを知らせるプロトタイプ機能のNever-Slow Modeの説明をDinsan Francis氏は見つけた 。
これにより、リソースのローディングとランタイム処理を制限する実験的なブラウジングモードが可能になり、一貫して高速なエクスペリエンスの提供が実現できます。警告:黙ってコンテンツを壊す可能性があります!
インターネットの速度はそれほど速くなっていないのに対し、Webサイトのサイズはここ数年で大幅に拡大している。KeyCDNの分析では、平均的なWebページサイズが2010年の約700キロバイトから2016年には2300キロバイトまで増加したという
(image taken from https://www.keycdn.com)
Never-Slow Modeのリリース予定日に関する情報や、Never-Slow ModeがChromeの次のメジャーバージョンに含まれるかどうかについて、現時点では発表されていない。