# İstemciyi yükleme

> client.js dosyasını Entase CDN'den yükleyin, ardından bir örnek oluşturun. Yüklenecek paket veya derleme adımı yoktur.

İstemci, Entase CDN üzerinden tek bir dosya olarak sunulur. npm paketi, derlenecek paket veya güncel tutulacak bağımlılık yoktur – her zaman güncel sürümü alırsınız.

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

Betiğin yüklenmesi genel bir `Entase` sınıfı tanımlar. Tek başına başka hiçbir şey yapmaz: ağ isteği yoktur, DOM değişikliği yoktur, hiçbir şey render edilmez. Her şey bir örnek oluşturduğunuzda başlar.

## Örnek oluşturma

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

**Sayfa başına bir örnek** oluşturun ve bunu her etkinlik için yeniden kullanın. Oluşturucu, pencerede bir `message` dinleyicisi kaydeder ve alan adınızın hangi ödeme modunu kullanmasına izin verildiğini algılamaya başlar; bu nedenle birden fazla örnek oluşturmak, hiçbir fayda sağlamadan yinelenen dinleyiciler ve yinelenen algılama çağrıları anlamına gelir.

Her seçeneğin bir varsayılan değeri vardır; bu nedenle bağımsız değişken olmadan `new Entase()` kullanımı geçerlidir – ancak `pk` olmadan istemci, alan adınızın satır içi ödeme kullanıp kullanamayacağını doğrulayamaz ve her zaman açılır pencereye geri döner. Bkz. [Ödeme modları](/developers/js-client/checkout-modes.md).

## Betiği eşzamansız yükleme

`client.js` dosyasını `async` veya `defer` ile yüklerseniz, satır içi betiğiniz çalıştığında sınıf henüz mevcut olmaz. Kitaplık, yüklendikten sonra `window` üzerinde bir `entase:ready` olayı gönderir; bu nedenle olayı bekleyin:

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

Önce `typeof` denetimi önemlidir: betik yüklenmesini zaten tamamladıysa `entase:ready` zaten tetiklenmiştir ve bunu dinlemek sonsuza kadar bekler.

## Temizleme

Tek sayfalı bir uygulamada, örneğe sahip görünüm kaldırıldığında `destroy()` çağrısı yapın:

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

Bu, istemcinin kaydettiği pencere dinleyicilerini kaldırır. Yok edilmiş bir örnek yeniden kullanılamaz – üzerinde `book()` çağrısı yapmak bir hata günlüğe kaydeder ve hiçbir şey yapmaz. Bunun yerine yeni bir örnek oluşturun.

## İçerik Güvenliği Politikası

Siteniz bir `Content-Security-Policy` başlığı gönderiyorsa, ödeme için şunlar gerekir:

- `script-src https://js.entase.com` – kitaplığı yüklemek için.
- `frame-src https://www.entase.com` – ödeme, panel modunda bir iframe içinde render edilir.
- `connect-src https://www.entase.com` – istemci, izin verilen ödeme modunu belirlemek için Entase API'sini çağırır.

`frame-src` olmadan panel modu boş bir panel oluşturur. `connect-src` olmadan mod algılama başarısız olur ve her ödeme açılır pencere olarak açılır.
