# Klienta instalēšana

> Ielādējiet client.js no Entase CDN un pēc tam izveidojiet instanci. Nav jāinstalē pakotne un nav nepieciešama būvēšanas darbība.

Klients tiek piegādāts no Entase CDN kā viens fails. Nav npm pakotnes, nav būvējama komplekta un nav atkarību, kas jāatjaunina – jūs vienmēr saņemat aktuālo versiju.

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

Ielādējot skriptu, tiek definēta globāla `Entase` klase. Tā pati par sevi neko citu nedara: neveic tīkla pieprasījumus, neizmaina DOM un neko neatveido. Viss sākas, kad izveidojat instanci.

## Instances izveide

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

Izveidojiet **vienu instanci katrai lapai** un izmantojiet to atkārtoti visiem notikumiem. Konstruktors reģistrē `message` klausītāju logā un sāk noteikt, kuru norēķināšanās režīmu jūsu domēns drīkst izmantot, tāpēc vairāku instanču izveide bez ieguvuma rada dublētus klausītājus un dublētus noteikšanas izsaukumus.

Katrai opcijai ir noklusējuma vērtība, tāpēc `new Entase()` bez argumentiem ir derīgs – taču bez `pk` klients nevar pārbaudīt, vai jūsu domēns drīkst izmantot iegulto norēķināšanos, un vienmēr pārslēgsies uz uznirstošo logu. Skatiet [Norēķināšanās režīmi](/developers/js-client/checkout-modes.md).

## Skripta asinhrona ielāde

Ja ielādējat `client.js` ar `async` vai `defer`, klase vēl nepastāvēs, kad tiks izpildīts jūsu iekļautais skripts. Bibliotēka pēc ielādes nosūta `entase:ready` notikumu uz `window`, tāpēc gaidiet to:

```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>
```

Vispirms ir svarīgi veikt `typeof` pārbaudi: ja skripts jau ir pabeidzis ielādi, `entase:ready` jau ir nosūtīts, un tā klausīšanās nozīmētu gaidīšanu bezgalīgi.

## Tīrīšana

Vienas lapas lietojumprogrammā izsauciet `destroy()`, kad tiek atmontēts skats, kam pieder instance:

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

Tādējādi tiek noņemti klienta reģistrētie loga klausītāji. Iznīcinātu instanci nevar izmantot atkārtoti – izsaucot tai `book()`, tiek reģistrēta kļūda un nekas nenotiek. Tā vietā izveidojiet jaunu instanci.

## Satura drošības politika

Ja jūsu vietne nosūta `Content-Security-Policy` galveni, norēķināšanās funkcijai nepieciešams:

- `script-src https://js.entase.com` – lai ielādētu bibliotēku.
- `frame-src https://www.entase.com` – rūts režīmā norēķināšanās tiek atveidota iframe elementā.
- `connect-src https://www.entase.com` – klients izsauc Entase API, lai noteiktu atļauto norēķināšanās režīmu.

Bez `frame-src` rūts režīmā tiek parādīts tukšs panelis. Bez `connect-src` režīma noteikšana neizdodas, un katra norēķināšanās tiek atvērta kā uznirstošais logs.
