Skip to content

BoosterLayer

If the BoosterLayer is implemented, the javascript initialisation is automatically monitored. If one of the events

  • ✅ reduced bandwidth
  • ✅ weak hardware
  • ✅ unsupported browser

occurs, the process is paused and only continued or cancelled after a user interaction in the layer.

The layer is placed once in the layout (e.g. layouts/default.vue). The included BoosterLayer serves as a wrapper and must be filled according to the template, see example component.

The content contains messages and buttons that are displayed in the respective event. Messages and buttons are defined with an id, these are set to display: none; by default via CSS.

  • e.g. nuxt-booster-message-unsupported-browser for message
  • e.g. nuxt-booster-button-init-app for button

INFO

For the closing mechanism of the layer, see Hide Layer.

Messages

The messages are elements that are displayed for the relevant events.

Initially, all IDs are set to display: none;, so no message is visible.
When an event is triggered, the relevant message is displayed via the ID using the style attribute display: block;.

IDDescription
Javascript is disabled.
Connection bandwidth is too low.
User hardware are not sufficient.
User Browser is not supported by Browserslist.

Example

html
<!-- initial -->
<div id="nuxt-booster-message-unsupported-browser">
  Your browser is not supported!
</div>

<!-- active -->
<div id="nuxt-booster-message-unsupported-browser" style="display: block;">
  Your browser is not supported!
</div>

Buttons

The buttons are interaction elements for the user with which he can make his choice at the relevant event.

Initially, all IDs except for nuxt-booster-button-nojs are set to display: none;. When an event is triggered, the relevant button is displayed via the ID using the style attribute display: block;.

SelectorDescription
Visible when javascript is disabled, needed so that the user can hide the layer. Requires the Hide Layer implementation.
Is used to offer the user the possibility to visit the page only with activated fonts and images. Other initialisations of the Javascript are prevented.
Activates all features. The initialisation of the JavaScript is started, images are loaded.

INFO

It is recommended to register an Inline Click-Event for the buttons .nuxt-booster-button-init-reduced-view and .nuxt-booster-button-init-app.

More information under Force App initialization

Hide Layer

html
<label for="nuxt-booster-layer-close">
  Close Layer
</label>

The layer can be closed via a for attribute with the id nuxt-booster-layer-close.

  • ✅ Closing mechanics does not require javascript.

Template

html
<booster-layer>
  <div>
    <p>Sorry, but you will have a limited user experience due to a…</p>

    <ul style="padding: 0; list-style: none;">
      <!-- Displayed when javascript is disabled. -->
      <li id="nuxt-booster-message-nojs">
        disabled javascript
      </li>
      <!-- Displayed when browser does not support. -->
      <li id="nuxt-booster-message-unsupported-browser">
        outdated browser
      </li>
      <!-- Displayed when connection bandwidth is too low. -->
      <li id="nuxt-booster-message-reduced-bandwidth">
        reduced-bandwidth
      </li>
      <!-- Displayed when user hardware are not sufficient.  -->
      <li id="nuxt-booster-message-weak-hardware">
        weak hardware
      </li>
      <!-- Displayed when the user batteries are not sufficient.  -->
      <li id="nuxt-booster-message-low-battery">
        low battery
      </li>
    </ul>

    <!-- Button to hide the layer with no javascript -->
    <button class="nuxt-booster-button-init-nojs">
      <label for="nuxt-booster-layer-close">
        Apply without js
      </label>
    </button>

    <!-- Button for use without javascript and with fonts -->
    <button class="nuxt-booster-button-init-reduced-view">
      <label for="nuxt-booster-layer-close">
        Apply without scripts
      </label>
    </button>

    <!-- Button for activate javascript by bad connection or browser support -->
    <button class="nuxt-booster-button-init-app">
      Apply with all Features
    </button>
  </div>
</booster-layer>

Force App initialization

Set the global variable __NUXT_BOOSTER_AUTO_INIT__ to true to force the initialization of the app.

VariableTypeDescriptionDefault
__NUXT_BOOSTER_AUTO_INIT__BooleanIf set, initialisation continues after the javascript has been fully loaded.false