SvelteKit での実装
Kameleoon Web Experimentation を アンチフリッカー保護 付きで統合し、SvelteKit のハイドレーション後 にengine.js スクリプトを実行します。このセットアップにより、最適なパフォーマンス、視覚的安定性、SvelteKit のレンダリングライフサイクルとの互換性を保証します。
本番環境向けの SvelteKit 統合にアクセスする
本番環境向けのリポジトリにはこちらからアクセスできます: https://github.com/Kameleoon/setup-engine-sveltekit 開始する前に、src/lib/integrations/Kameleoon/sitecode.ts で sitecode の値を置き換えてください。
スクリプトドメイン
Kameleoon スクリプトのドメインはプロジェクトによって異なる場合があります。プロジェクトを作成した時期に応じて、スクリプトはkameleoon.eu または kameleoon.io に配置されている場合があります。常に Kameleoon App でプロジェクトに表示されているドメインを使用してください。
概要
- Kameleoon エンジンをプリロード: ブラウザがエンジンを早期にダウンロードしキャッシュするようにします。
- アンチフリッカー CSS を適用: エンジンの準備が整うまでコンテンツを非表示にし、レイアウトシフトを防ぎます。
- ハイドレーション後にエンジンを実行: SvelteKit のハイドレーション後にスクリプトを実行して不整合を回避します。
コンポーネント
統合では、スムーズな読み込みを保証し、ハイドレーション中のちらつきを防ぐために 2つのコンポーネント を使用します。1. サーバーコンポーネント
コンポーネントは:- SSR 中にアンチフリッカー CSS を注入して UI のちらつきを防ぎます。
- できるだけ早くダウンロードが開始されるよう
engine.jsファイルをプリロードします。
KameleoonHead.svelte を参照してください。
2. クライアントコンポーネント
コンポーネントは:- ハイドレーション後にアンチフリッカースタイルを削除します。
- Kameleoon の
engine.jsスクリプトを動的に読み込みます。 - スクリプトがレンダリングをブロックせずに読み込まれるようにします。
KameleoonHydrationReady.svelte を参照してください。
デフォルトのアンチフリッカータイムアウトは
750 ms です。必要に応じて kameleoonLoadingTimeout を調整してください。RootLayout での使用
レイアウトで両方のコンポーネントを組み合わせます:layout.svelte を参照してください。
重要なポイント
- SSR でのちらつきから保護します。
- ハイドレーションを認識したスクリプト実行を使用します。
- エンジンを非同期で読み込みます。
- 信頼性のためにフォールバックタイムアウトを使用します。
- ブロッキングスクリプトを回避します。
- SvelteKit のレイアウト、SSR、クライアントサイドルーティングをサポートします。