如何清理chrome内存缓存?

时间:2013-06-16 16:01:19

标签: javascript google-chrome google-chrome-extension

我正在开发Chrome扩展程序,并且每次用户在Google中搜索时我都会尝试执行操作。目前我正在使用chrome.webRequest onBeforeRequest监听器。它完全适用于大多数情况,但有些请求是通过缓存完成的,并且不执行任何调用。我在关于caching的API文档中找到了这个:

  

Chrome使用两个缓存 - 磁盘缓存和非常快速的内存缓存。内存高速缓存的生命周期附加到呈现过程的生命周期,该过程大致对应于选项卡。从内存缓存中回答的请求对Web请求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/*"]
});

有没有办法从扩展名中清空/禁用此内存缓存?

1 个答案:

答案 0 :(得分:1)

asume “缓存”是Google-Website在对象,数组中使用一些疯狂的JavaScript执行的......所以在Memory-Cache中清空浏览器无济于事。

我的第一个想法是数据存储在sessionStorage中(由于这些值在其中有搜索词[在这里我搜索测试]并且在每次请求/更改所选内容时更新/创建“搜索词”

enter image description here

我尝试清除Sessionstorage(甚至是周期性的),但它并没有真正改变“不”加载,更多的存储被重新创建,即使没有存储,也会显示不同的结果。

由于此信息以及我无法检查几千行minfied JavaScript代码的事实,我只能假设网站执行缓存请求。我希望这些信息可以指出你正确的方向。