Get it on Google Play

Liferay 7 convierte todo en una SPA(Single Page Application), y eso no siempre es bueno

30-08-2017
 

Si has creado un portal con Liferay 7 e insertas el plugin de Twitter y no siempre te carga o tienes componentes creados en JQuery donde no responde al evento ‘ready’ o el evento ‘onload’. Aquí vamos a ver como arreglar esto.

Observarás que en Liferay 7 cuando hacemos click en un link interno el navegador no carga la página como es habitual. Hace una precarga AJAX como se muestra en la captura de la consola de mi firebug:

Liferay Senna.js Ajax Load

Liferay Senna.js Ajax Load

El responsable de esto es Senna un framework Javascript que nos convierte el portal en una SPA(Single Page Application) sin darnos cuenta.

Usar Senna tiene grandes ventajas porque mejora, y mucho, la experiencia de usuario ya que consigue cargar las páginas mucho mas rápido y con una transición mucho mas agradable. Da gusto navegar así.

Pero como hemos visto al principio, muchas veces, no es factible ya que es muy intrusivo y da problemas con widgets y desarrollos de terceros(Por ejemplo Twitter o otros componentes). Simplemente, a veces, necesitamos que la página se recargue entera en el navegador:

Deshabilitar Senna.js en Liferay 7

Si deseas deshabilitar Senna.js solo en algunos links o formularios inserta el siguiente atributo en la etiqueta correspondiente:

data-senna-off="true"

Si deseas deshabilitar Senna.js en un portlet concreto, puedes hacerlo anotando la classe controladora del portlet con la propiedad:

com.liferay.portlet.single-page-application=false

Y finalmente, si lo que deseas es deshabilitarlo de todo el portal(Lo que yo he tenido que hacer en mas de una ocasión) puedes configurar la siguiente propiedad en el fichero portal-ext.proeprties:

javascript.single.page.application.enabled=false

Interesado en formación Liferay?

 

Leave a Reply