src/integrations/Kameleoon/sitecode.ts.
El timeout predeterminado para Next.js es de 500 ms.
El dominio de su script de Kameleoon puede diferir entre proyectos. En función de su fecha de creación, sus proyectos pueden estar alojados en
kameleoon.eu o en kameleoon.io. Utilice siempre el dominio mostrado para su proyecto dentro de la aplicación Kameleoon.Visión general
- Precargue el motor de Kameleoon para que el navegador lo descargue cuanto antes y lo almacene en caché.
- Aplique CSS anti-flicker para ocultar el contenido hasta que el motor esté listo, evitando saltos de diseño.
- Ejecute el motor después de la hidratación para evitar advertencias o discrepancias en la hidratación de React.
Componentes
Esta integración utiliza dos componentes que trabajan conjuntamente para garantizar una carga fluida y evitar el flickering durante la hidratación.1. Server Component
Coloque este componente dentro del <head> de su layout principal.
Sus responsabilidades son:
- Inyectar CSS anti-flicker durante el SSR para evitar parpadeos de la UI.
- Precargar el archivo
engine.jspara que la descarga comience lo antes posible.
KameleoonHead.tsx
2. Client Component
Coloque este componente al principio del <body> para controlar con precisión los tiempos de ejecución.
Este componente:
- Elimina los estilos anti-flicker después de la hidratación.
- Carga dinámicamente el
engine.jsde Kameleoon. - Garantiza que el script se cargue sin bloquear el renderizado.
KameleoonHydrationReady.tsx
El timeout predeterminado es de
500 ms. Ajuste kameleoonLoadingTimeout si es necesario.Uso en RootLayout
Ejemplo de cómo combinar ambos componentes:
layout.tsx
Conclusiones clave
- Protección anti-flicker en SSR
- Ejecución del script consciente de la hidratación
- Carga asíncrona del motor
- Timeout de respaldo para mayor fiabilidad
- Sin scripts bloqueantes
- Funciona con layouts de Next.js, streaming y React Server Components