Chromeが将来的に、「Never-Slow Mode」(遅くならないモード)という新機能をリリースするかもしれない。
オープンソースプロジェクト「Chromium」で進行中の取り組みのようで、プロトタイプの機能が説明されています。
全容が明かされていないのですべてのことを記載できないですが、公表されていることをまとめたいと思います。
Never-Slow Mode(遅くならないモード)とは
重いWebページを高速な描画させる機能になるようです。
Never-Slow Modeを有効にすると、「メインスレッドをクリーンに保つため、インタラクションごとのバジェットを強制する」そうです
なんのことかさっぱりわからないですよね・・・・
インタラクションは相互関係、バジェットは予算とか経費を意味する単語です。
それを踏まえると、「メインスレッドを正常な状態で保つようにするために、相互関係ごとに容量(予算)を確保することを強制するってことです」。
まぁこれでもよくわからないですよね。
Alex Russell氏の記述によると「大きなスクリプトのブロック、特定のリソースタイプ(スクリプト、フォント、CSS、画像)へのバジェットの設定、document.write()の停止、同期XHRの無視、クライアントヒントの全面的な有効化、および『Content-Length』が設定されていないリソースのバッファリングを実施する」
と記載されている。
Currently blocks large scripts, sets budgets for certain resource
types (script, font, css, images), turns off
document.write(), clobbers sync XHR, enables client-hints
pervasively, and buffers resources without `Content-Length` set.
Budgets are re-set on interaction (click/tap/scroll). Long
script tasks (> 200ms) pause all page execution until next
interaction.
これを読み解くとスクリプト、フォント、CSS、画像の読み込みリソースに容量(バジェット)を設定して制限をする機能のようです。
そして、document.write()の停止、同期XHRの無視、クライアントヒントの全面的な有効化、および『Content-Length』が設定されていないリソースのバッファリングを実施
ここで出てくるインタラクションとは、クリック、タップ、スクロールのことのようで、この操作でリセットされるようです。
スクリプトのタスクが200ミリ秒を超えるものは、次のインタラクションまですべてページ実行を停止されてしまう。
なんか怖くないこれ?
大きなスクリプトって言われても、我々のようなブロガーは自分でスクリプトを実装しているとは限らない。
とくにWordpressを利用している場合、プラグインがスクリプトを実行している場合もあるわけでこちらで制御できない。
もちろん、この機能がChromeに実装されるころにはもっとブラッシュアップされているとは思うが・・・
この機能がChromeの隠された実験的機能の仲間入りをした場合、Never-Slow Modeの有効化がコンテンツを崩す可能性があると警告もされている。
遅いページ構成だと最悪、Chromeによってブロックされる可能があるわけです。
んー今のうちに不要なプラグインとか整理しておこうかな・・・
合わせて読みたい