.webp)
WebflowによるJavaScript最適化の仕組みについてご紹介します。
Per page JavaScriptおよびJavaScriptの非同期読み込み機能は、順次すべてのユーザーへ提供が拡大されています。
Webflowでは、公開サイトのJavaScriptを最適化するために、ページごとに特化したJavaScriptファイルや、ブラウザでキャッシュできる再利用可能なコードチャンクを自動生成しています。
さらに「Advanced publishing options」でJavaScriptファイルを非同期で読み込む設定も可能です。
これにより、ページのコンテンツと同時にJavaScriptを読み込めるため、サイトのパフォーマンスや体感的な読み込み速度が向上します。
ポイント
以前は、Webflowで生成されるJavaScriptはサイト全体で共通の1ファイルで、全ページに同じJSが読み込まれていました。
すべてのページで必要ないJavaScriptも含まれていたため、無駄が発生していました。
Per page JavaScript導入後は、各ページごとに個別の、より小さいJavaScriptバンドルが生成され、特定ページに必要なJavaScriptだけが読み込まれる仕組みになります。
また、複数ページで使われるJavaScriptは「再利用可能なチャンク」に分割され、ブラウザにキャッシュされます。
これにより、ユーザーが別のページへ移動しても、すでにキャッシュされたコードは再度読み込む必要がなくなります。
こうした仕組みにより、各ページで読み込むJavaScript量が減り、ページの表示速度やサイト全体のパフォーマンスが向上します。
注記
JavaScriptの非同期読み込みは、有料のSiteプランまたはWorkspaceプランで利用可能です。
「Advanced publishing options」から「Asynchronously load JavaScript」トグルをON/OFFで切り替え、JavaScriptの読み込み方法を選べます。
カスタムJavaScriptコードや共有Libraryを使っている場合、「Asynchronously load JavaScript」をONにするとスクリプトやLibrary要素が正常に動作しなくなる可能性があります。
これは、カスタムコードやLibrary要素が依存するJavaScriptが、ブラウザでまだ完全に読み込まれていない場合に発生します。
カスタムJavaScriptが特定の順序(同期的)での実行を前提としている場合は、非同期読み込みに合わせてコードを調整する必要があります。
主な方法は以下の2つです。
<script>
タグ(src属性付き)にdefer
属性を追加すると、HTMLの解析完了後まで実行を遅延できます。window load
イベントハンドラーで囲み、すべてのリソース読み込み後に実行するようにします。注記
Webflowサポートはカスタムコードに関する個別サポートは提供していません。
非同期読み込みONでカスタムJavaScriptが動かない場合は、一度OFFに戻して公開しなおし、開発者に相談するかWebflowフォーラムで質問してください。
会社名
Funwork株式会社
所在地
東京都千代田区東神田3-4-12
代表者
堀尾 尭史
電話番号
メール
03-5809-2979
backoffice@funwork2020.com
URL
設立日
2020年5月18日
資本金
9,000,000円
取引銀行
きらぼし銀行
Webサイト、ITサービス受託開発
マーケティングコンサル事業
シェアオフィス及びコワーキングスペースの運営