aboutsummaryrefslogtreecommitdiff
path: root/files/fr/web/api/clients/claim/index.md
blob: e392a459aa000cc2815339a84aebce5c84609b65 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
---
title: Clients.claim()
slug: Web/API/Clients/claim
tags:
  - API
  - Clients
  - Méthode
  - Reference
  - Service Workers
  - claim
translation_of: Web/API/Clients/claim
---
{{SeeCompatTable}}{{APIRef("Service Worker Clients")}}

La méthode **`claim()`** de l'interface {{domxref("Clients")}} permet à un service worker actif de se définir comme service worker actif de la page client quand le worker et la page sont dans le même scope. Ceci déclenche un évènement {{domxref("ServiceWorkerContainer.oncontrollerchange","oncontrollerchange")}} dans toutes les pages dans la portée du service worker.

Cette méthode peut être utilisée avec {{domxref("ServiceWorkerGlobalScope.skipWaiting()")}} pour s'assurer que la mise à jour du service worker sous jacent prend effet immédiatement pour et le client courant et tous les autres clients actifs.

## Syntaxe

```js
ServiceWorkerClients.claim().then(function() {
  // Faire quelque chose
});
```

### Paramètres

None.

### Valeur de retour

Une `Promise.`

## Exemple

L'exemple suivant utilise `claim()` dans le gestionnaire d'évènement `onActivate` d'un service worker. Donc la page client chargée dans la même portée n'a pas besoin d'être rechargée avant de pouvoir utiliser le service worker.

```js
self.addEventListener('install', function(event) {
  event.waitUntil(self.skipWaiting());
});
self.addEventListener('activate', function(event) {
  event.waitUntil(self.clients.claim());
});
```

## Spécifications

| Spécification                                                            | Statut                               | Commentaire                                                                                                                                                                                                    |
| ------------------------------------------------------------------------ | ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| {{SpecName('Service Workers', '#clients', 'Clients')}} | {{Spec2('Service Workers')}} | Définition initiale. Toujours en cours de développement (voir [ticket 414](https://github.com/slightlyoff/ServiceWorker/issues/414) et [ticket 423](https://github.com/slightlyoff/ServiceWorker/issues/423)). |

## Compatibilité de navigateurs

{{Compat("api.Clients.claim")}}

## À voir aussi

- [Utiliser les Service Workers](/en-US/docs/Web/API/ServiceWorker_API/Using_Service_Workers)
- [Example simple de service workers](https://github.com/mdn/sw-test)
- [Est-ce que les ServiceWorker sont prêt?](https://jakearchibald.github.io/isserviceworkerready/)
- {{jsxref("Promise")}}
- [Utilisation optimisée des web workers](/en-US/docs/Web/Guide/Performance/Using_web_workers)
- {{domxref("ServiceWorkerGlobalScope.skipWaiting()")}}