From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../api/extendableevent/extendableevent/index.html | 109 +++++++++++++ files/fr/web/api/extendableevent/index.html | 169 +++++++++++++++++++++ 2 files changed, 278 insertions(+) create mode 100644 files/fr/web/api/extendableevent/extendableevent/index.html create mode 100644 files/fr/web/api/extendableevent/index.html (limited to 'files/fr/web/api/extendableevent') diff --git a/files/fr/web/api/extendableevent/extendableevent/index.html b/files/fr/web/api/extendableevent/extendableevent/index.html new file mode 100644 index 0000000000..913fc0079c --- /dev/null +++ b/files/fr/web/api/extendableevent/extendableevent/index.html @@ -0,0 +1,109 @@ +--- +title: ExtendableEvent.ExtendableEvent() +slug: Web/API/ExtendableEvent/ExtendableEvent +tags: + - API + - Experimental + - ExtendableEvent + - Reference + - Service Workers + - ServiceWorker +translation_of: Web/API/ExtendableEvent/ExtendableEvent +--- +

{{APIRef("Service Workers API")}}{{ SeeCompatTable() }}

+ +

Le contructeur ExtendableEvent() crée un nouvel objet {{domxref("ExtendableEvent")}}.

+ +

Syntaxe

+ +
var myExtendableEvent = new ExtendableEvent(type, init);
+ +

Paramètres

+ +
+
type
+
Le type de l'ExtendableEvent, par exemple {{Event("install")}}, {{Event("activate")}}.
+
init {{optional_inline}}
+
Un objet d'options contenant n'importe quelle configuration personnalisée que vous voulez appeler à un objet d'évènement. Pour le moment, il n'existe pas d'option dans la spécification, mais il a été défini pour une compatibilité future pour les différents évènements dérivés.
+
+ +

Spécifications

+ + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('Service Workers', '#extendable-event', 'ExtendableEvent')}}{{Spec2('Service Workers')}}Définition initiale.
+ +

Compatibilités des navigateurs

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FonctionnalitéChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Support de base{{CompatChrome(40.0)}}{{ CompatGeckoDesktop("44.0") }}{{CompatNo}}24{{CompatNo}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéAndroidFirefox Mobile (Gecko)Firefox OSIE MobileOpera MobileSafari MobileChrome for Android
Support de base{{CompatUnknown}}{{ CompatGeckoMobile("44.0") }}{{ CompatVersionUnknown }}{{CompatNo}}{{CompatUnknown}}{{CompatNo}}{{CompatUnknown}}
+
+ +

Voir aussi

+ + diff --git a/files/fr/web/api/extendableevent/index.html b/files/fr/web/api/extendableevent/index.html new file mode 100644 index 0000000000..02967eaa8a --- /dev/null +++ b/files/fr/web/api/extendableevent/index.html @@ -0,0 +1,169 @@ +--- +title: ExtendableEvent +slug: Web/API/ExtendableEvent +tags: + - API + - Experimental + - ExtendableEvent + - Interface + - Reference + - Services Workers +translation_of: Web/API/ExtendableEvent +--- +
{{APIRef("Service Workers API")}}{{SeeCompatTable}}
+ +

L'interface ExtendableEvent étend la durée de vie des évènemets {{event("install")}} et {{event("activate")}} envoyés dans la portée global dans le cycle de vie du service worker. Elle s'assure que les évènements fonctionnels (comme {{domxref("FetchEvent")}}) ne sont pas distribués avant de mettre à jour les shémas de la base de données et de vider l'ancien cache.

+ +

Si {{domxref("ExtendableEvent.waitUntil","waitUntil()")}} est appelé en dehors du gestionnaire ExtendableEvent, le navigateur doit lever InvalidStateError; notez que plusieurs appels vont s'empiler, et que les promesses de résultat seront ajoutées à la liste des promesses à vie étendue.

+ +
+

Note: Le comportement décrit dans le paragraphe précédent a été corrigé dans Firefox 43 (voir {{bug(1180274)}}).

+
+ +

Cette interface hérite de l'interface {{domxref("Event")}}.

+ +

{{InheritanceDiagram(700, 60, 20)}}

+ +
+

Note: Cette interface est disponnible seulement quand la portée globale est {{domxref("ServiceWorkerGlobalScope")}}. Elle n'est pas disponible quand c'est une {{domxref("Window")}}, ou le scope d'un autre genre de worker.

+
+ +

Constructeur

+ +
+
{{domxref("ExtendableEvent.ExtendableEvent()", "ExtendableEvent()")}}
+
Crée un nouvel object ExtendableEvent.
+
+ +

Propriétés

+ +

N'implémente pas de propriétés spécifiques, mais hérite celles de sont parent, {{domxref("Event")}}.

+ +

Méthodes

+ +

Hérite des méthodes de son parent {{domxref("Event")}}.

+ +
+
{{domxref("ExtendableEvent.waitUntil", "ExtendableEvent.waitUntil()")}}
+
Étend la durée de vie de l'évènement. Cette méthode doit être appelée dans {{event("install")}}{{domxref("EventHandler")}} pour le worker {{domxref("ServiceWorkerRegistration.installing", "installing")}} et dans {{event("active")}} {{domxref("EventHandler")}} pour le worker {{domxref("ServiceWorkerRegistration.active", "active")}}. 
+
+ +

Exemples

+ +

Ce fragment de code est tiré de l'exemple de lecture du service worker (voir l'exemple en live). Ce code appelle {{domxref("ExtendableEvent.waitUntil()")}} dans {{domxref("ServiceWorkerGlobalScope.oninstall")}}, retartant le traitement du worker {{domxref("ServiceWorkerRegistration.installing")}} après l'installation jusqu'à ce que la promesse se résolve. La promesse se résoud quand toutes les ressources ont été récupérés et mises en cache, ou quand une exception est lévée.

+ +

Ce fragent de code montre aussi une bonne pratique pour construire des versions de cache utilisé par le service worker. Même s'il n'y a qu'un cache dans cet exemple, la même approche peut être utilisée pour plusieurs caches. Il lie un identifiant court pour un cache avec un nom de cache spécifique et versionné. 

+ +
+

Note: Dans Chrome, les messages de logging sont visible dans l'interface "Inspect" pour le service worker concerné, accessible via chrome://serviceworker-internals.

+
+ +
var CACHE_VERSION = 1;
+var CURRENT_CACHES = {
+  prefetch: 'prefetch-cache-v' + CACHE_VERSION
+};
+
+self.addEventListener('install', function(event) {
+  var urlsToPrefetch = [
+    './static/pre_fetched.txt',
+    './static/pre_fetched.html',
+    'https://www.chromium.org/_/rsrc/1302286216006/config/customLogo.gif'
+  ];
+
+  console.log('Installation en cours. Ressources à pré-charger :', urlsToPrefetch);
+
+  event.waitUntil(
+    caches.open(CURRENT_CACHES['prefetch']).then(function(cache) {
+      cache.addAll(urlsToPrefetch.map(function(urlToPrefetch) {
+        return new Request(urlToPrefetch, {mode: 'no-cors'});
+      })).then(function() {
+        console.log('Toutes les ressources ont été chargées et mises en cache.');
+      });
+    }).catch(function(error) {
+      console.error('Erreur de pré-chargement :', error);
+    })
+  );
+});
+ +
Important: Au moment du chargement des ressources, il est très important d'utiliser {mode: 'no-cors'} s'il y a une chance que la ressource soit servie depuis un serveur qui ne supporte pas le CORS. Dans cet exemple, www.chromium.org ne support pas le CORS.
+ +

Spécifications

+ + + + + + + + + + + + + + +
SpécificationStatutCommentaire
{{SpecName('Service Workers', '#extendable-event', 'ExtendableEvent')}}{{Spec2('Service Workers')}}Définition initiale
+ +

Compatibilité des navigateurs

+ +
{{CompatibilityTable}}
+ +
+ + + + + + + + + + + + + + + + + + + +
FonctionnalitéChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
Support de base{{CompatChrome(40.0)}}{{ CompatGeckoDesktop("44.0") }}{{CompatNo}}24{{CompatNo}}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
FonctionnalitéAndroidFirefox Mobile (Gecko)Firefox OSIE MobileOpera MobileSafari MobileChrome for Android
Support de base{{CompatUnknown}}{{ CompatGeckoMobile("44.0") }}{{ CompatVersionUnknown }}{{CompatNo}}{{CompatUnknown}}{{CompatNo}}{{CompatUnknown}}
+
+ +

See also

+ + -- cgit v1.2.3-54-g00ecf