# De Client installéieren

> Luet client.js vum Entase-CDN, da erstellt eng Instanz. Et gëtt kee Package fir ze installéieren a kee Build-Schrëtt.

De Client gëtt vum Entase-CDN als eenzege Fichier geliwwert. Et gëtt keen npm-Package, kee Bundle fir ze bauen a keng Ofhängegkeet, déi aktuell gehale muss ginn – Dir kritt ëmmer déi aktuell Versioun.

```html
<script src="https://js.entase.com/client.js"></script>
```

D'Luede vum Skript definéiert eng global `Entase`-Klass. Eleng mécht et soss näischt: keng Netzwierkufroen, keng DOM-Ännerungen, näischt gëtt gerendert. Alles fänkt un, wann Dir eng Instanz erstellt.

## Eng Instanz erstellen

```js
const entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY' });
```

Erstellt **eng Instanz pro Säit** a benotzt se fir all Event erëm. De Konstrukteur registréiert e `message`-Listener op der Fënster a fänkt un z'erkennen, wéi ee Checkout-Modus Är Domain benotze däerf. Méi Instanzen ze erstellen heescht also duebel Listener an duebel Erkennungsopruff ouni Virdeel.

All Optioun huet e Standardwäert, dofir ass `new Entase()` ouni Argumenter gülteg – awer ouni `pk` kann de Client net iwwerpréiwen, ob Är Domain den Inline-Checkout benotze kann, a fält ëmmer op eng Pop-up-Fënster zeréck. Kuckt [Checkout-Modi](/developers/js-client/checkout-modes.md).

## D'Skript asynchron lueden

Wann Dir `client.js` mat `async` oder `defer` lued, gëtt d'Klass nach net et, wann Äert Inline-Skript ausgefouert gëtt. D'Bibliothéik léist en `entase:ready`-Event op `window` aus, soubal se geluede gouf, also waart dorop:

```html
<script src="https://js.entase.com/client.js" async></script>
<script>
  let entase = null;

  const init = () => { entase = new Entase({ pk: 'YOUR_PUBLISHABLE_KEY' }); };

  if (typeof Entase !== 'undefined') init();
  else window.addEventListener('entase:ready', init);
</script>
```

D'`typeof`-Iwwerpréiwung als Éischt ass wichteg: wann d'Skript scho fäerdeg geluede gouf, ass `entase:ready` scho ausgeléist ginn an drop ze lauschtere géif fir ëmmer waarden.

## Opräumen

An enger Single-Page-Applikatioun, rufft `destroy()` op, wann d'Vue, där d'Instanz gehéiert, demontéiert gëtt:

```js
entase.destroy();
```

Dëst läscht d'Fënster-Listener, déi de Client registréiert huet. Eng zerstéiert Instanz kann net erëm benotzt ginn – `book()` dorop opz'rufen, protokolléiert e Feeler a mécht näischt. Erstellt amplaz eng nei Instanz.

## Content Security Policy

Wann Äre Site en `Content-Security-Policy`-Header schéckt, brauch de Checkout:

- `script-src https://js.entase.com` – fir d'Bibliothéik ze lueden.
- `frame-src https://www.entase.com` – de Checkout gëtt am Pane-Modus an engem iframe gerendert.
- `connect-src https://www.entase.com` – de Client rifft d'Entase-API op, fir den erlaabte Checkout-Modus ze bestëmmen.

Ouni `frame-src` weist de Pane-Modus en eidele Panel. Ouni `connect-src` schléit d'Modus-Erkennung feel an all Checkout geet als Pop-up op.
