Kai*_*izo 14 javascript google-chrome google-chrome-extension
我正在开发chrome的扩展程序,并且每次用户在Google中搜索时我都会尝试执行操作.目前我正在使用chrome.webRequest onBeforeRequest监听器.它完全适用于大多数情况,但有些请求是通过缓存完成的,并且不执行任何调用.我在有关缓存的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/*"]
});
Run Code Online (Sandbox Code Playgroud)
有没有办法从扩展中清空/禁用此内存缓存?
我假设“缓存”是由 Google 网站在对象、数组等中使用一些疯狂的 JavaScript 执行的,因此清空内存缓存中的浏览器将无济于事。
我的第一个想法是数据存储在 sessionStorage 中(因为值中包含搜索词[此处我搜索了测试],并且在所选“搜索”的每个请求/更改时更新/创建)单词”
)
我尝试清除会话存储(甚至定期),但它并没有真正改变“不”加载,而且重新创建了存储,即使没有存储,也会显示不同的结果。
由于这些信息以及我无法检查 1000 行 minfied JavaScript 代码的事实,我只能假设该网站对请求进行了缓存。我希望这些信息能为您指明正确的方向。
归档时间: |
|
查看次数: |
3235 次 |
最近记录: |