パフォーマンスを向上させるために、ログイン ページで 1.2 MB のレガシー JavaScript ライブラリをプリフェッチしたいと考えています。このライブラリは、ユーザーがログインした後にのみ必要です。WebPageTest は、Chrome がダウンロード後にファイルを処理するのに約 700 ミリ秒の CPU を必要とすることを示しています。ユーザーのブラウザにファイルをキャッシュすることはできますが、JavaScript を実行/解析することはできませんか?
私の理想の流れ:
- ログインページを読み込む
- script タグ
の
async
および属性を使用して js ライブラリを非同期ロードするdefer
- 解析しません。ユーザーがログインするまで、ライブラリは実際には使用されません。
- ユーザーのログイン
- ユーザーのホームページを読み込み、キャッシュから js ライブラリを読み込み (存在する場合、そうでない場合はサーバーから取得 - 非同期ではありません)、解析します
- ここでは 700 ミリ秒の解析時間のみを支払いたい
スクリプト属性の「タイプ」をに変更する可能性を調べましたtext/plain
が、これは不可能のようです。これがうまくいったとしても、私にはある種のeval
悪に直面するように思えます.
なぜ私はこのようにしたいのですか?ユーザーが資格情報を入力している間、ブラウザーが基本的にアイドル状態になる小さな時間枠があります。その時間を使ってこの大きなライブラリをダウンロードし、次のページの読み込みを有利に進めたいと考えています。バックグラウンドでファイルをダウンロードすることでブラウザのキャッシュを潤すことができますが、ブラウザがライブラリを受信してファイルを解析/実行した後、CPU で 700 ミリ秒のスパイクが発生します。ログイン ページでのこの CPU スパイクを回避したいと考えています。
この WPT スクリーン キャップの右下に CPU スパイクが見られます。