Я разрабатываю расширение в chrome, и я пытаюсь выполнить действие каждый раз, когда пользователь ищет в Google. В настоящее время я использую chrome.webRequest для прослушивателяBeforeRequest. Он отлично работает в большинстве случаев, но некоторые из запросов выполняются через кеш и не выполняют никаких вызовов. Я нашел это в документации API о caching:
В Chrome используются два кэша - кеш на диске и очень быстрый кеш в памяти. Время жизни кэша в памяти привязывается к времени жизни процесса визуализации, что примерно соответствует вкладке. Запросы, которые отвечают из кэша в памяти, невидимы для API веб-запросов. Если обработчик запроса изменяет свое поведение (например, поведение, в соответствии с которым блокируются запросы), простое обновление страницы может не учитывать это измененное поведение. Чтобы убедиться, что изменение поведения прошло, вызовите handlerBehaviorChanged(), чтобы очистить кеш в памяти. Но не делайте этого часто; промывка кеша - очень дорогостоящая операция. Вам не нужно вызывать handlerBehaviorChanged() после регистрации или отмены регистрации прослушивателя событий.
Я попытался использовать метод handlerBehaviorChanged(), чтобы очистить кеш в памяти, но не было никакой разницы. Хотя это не рекомендуется, я даже попытался вызвать его после каждого запроса.
Это мой код:
chrome.webRequest.MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES = 1000;
chrome.webRequest.onBeforeRequest.addListener(function (details) {
//perform action
chrome.webRequest.handlerBehaviorChanged();
} {
urls: ["*://*.google.com/*"]
});
Есть ли способ очистить/отключить этот кеш в памяти от расширения?