--- title: webRequest.handlerBehaviorChanged() slug: Mozilla/Add-ons/WebExtensions/API/webRequest/handlerBehaviorChanged tags: - API - Add-ons - Extensions - Method - Non-standard - Reference - WebExtensions - handlerBehaviorChanged - webRequest translation_of: Mozilla/Add-ons/WebExtensions/API/webRequest/handlerBehaviorChanged --- {{AddonSidebar()}}Cette fonction peut être utilisée pour s'assurer que les auditeurs d'événements sont appliqués correctement lorsque les pages se trouvent dans le cache en mémoire du navigateur.Si le navigateur a chargé une page et que la page est rechargée, le navigateur peut recharger la page à partir de son cache en mémoire, et dans ce cas, les événements ne seront pas déclenchés pour la demande. Supposons que le travail d'une extension consiste à bloquer les requêtes Web par rapport à un modèle, et le scénario suivant se produit : - L'utilisateur charge une page qui inclut une requête particulière, et le modèle permet la requête. - La ressource est chargée et mise en cache en mémoire. - Les modèles de l'extension sont mis à jour, de telle sorte que la ressource ne serait plus autorisée. - L'utilisateur recharge la page. Comme la page sera rechargée à partir du cache mémoire, il se peut que l'auditeur ne soit plus appelé et que la requête soit chargée malgré la nouvelle stratégie de l'extension. La fonction `handlerBehaviorChanged()` est conçue pour résoudre ce problème. Il vide le cache en mémoire, de sorte que les rechargements de page déclenchent les auditeurs d'événements. Parce que `handlerBehaviorChanged()` nettoie le cache, cela peut être coûteux et mauvais pour la performance. Le module webRequest définit une propriété en lecture seule {{WebExtAPIRef("webRequest.MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES", "MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES")}} : faire plus d'appels que ce nombre en 10 minutes n'aura aucun effet. L'implémentation de la mise en cache, d'où la nécessité de cette fonction, varie d'un navigateur à l'autre, de sorte que dans certains navigateurs, cette fonction ne fait rien. Il s'agit d'une fonction asynchrone qui renvoie une [`Promise`](/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise). ## Syntaxe ```js var flushingCache = browser.webRequest.handlerBehaviorChanged() ``` ### Paramètres None. ### Valeur retournée Une [`Promise`](/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise) qui sera remplie sans arguments, lorsque l'opération sera terminée. ## Compatibilité du navigateur {{Compat("webextensions.api.webRequest.handlerBehaviorChanged")}} ## Exemples Dans le snippet suivant, nous vidons le cache en mémoire via un appel à `handlerBehaviorChanged()`, et signalons cette action en enregistrant un message approprié à la console. ```js function onFlushed() { console.log(`In-memory cache flushed`); } function onError(error) { console.log(`Error: ${error}`); } var flushingCache = browser.webRequest.handlerBehaviorChanged(); flushingCache.then(onFlushed, onError); ``` {{WebExtExamples}} > **Note :** > > Cette API est basée sur l'API Chromium [`chrome.webRequest`](https://developer.chrome.com/extensions/webRequest). Cette documentation est dérivée de [`web_request.json`](https://chromium.googlesource.com/chromium/src/+/master/extensions/common/api/web_request.json) dans le code Chromium. > > Les données de compatibilité relatives à Microsoft Edge sont fournies par Microsoft Corporation et incluses ici sous la licence Creative Commons Attribution 3.0 pour les États-Unis.