我怎样才能在木偶戏中禁用缓存?

时间:2018-02-13 07:55:05

标签: javascript node.js puppeteer

我想在木偶戏中禁用缓存,有人可以告诉我我该怎么做吗?我发现了这个page.setCacheEnabled(enabled),但我无法理解如何使用它。

我知道浏览器是在没有缓存或cookie的情况下启动的,但在我的情况下,浏览器总是在后台运行,因此需要一个不同的解决方案。

4 个答案:

答案 0 :(得分:3)

根据木偶操作员文档,您可以使用await page.setCacheEnabled(enabled)

这是在12月份添加的。 See Git Hub issue #1609

如果你看commit changes,就会有一个测试,例如

await page.goto(SOMEURL);

await page.reload({waitUntil: 'networkidle2'});
expect(responses.get('one-style.css').fromCache()).toBe(true);

await page.setCacheEnabled(false);
await page.reload({waitUntil: 'networkidle2'});
expect(responses.get('one-style.css').fromCache()).toBe(false);

答案 1 :(得分:2)

您可以使用cdpSession.send()禁用缓存:

ggplot(d, mapping=aes(x=b,y=a,fill= d)) + geom_boxplot(aes(group=cut_width(b,2)))+scale_fill_discrete(labels=c("f", "e&f"))

或者,您可以使用可读性更高的page.setCacheEnabled()

const client = await page.target().createCDPSession();

await client.send('Network.setCacheDisabled', {
  cacheDisabled: true,
});

答案 2 :(得分:1)

每次浏览器启动都以干净的HTTP缓存开始,没有任何cookie。

let browser = await puppeteer.launch(); // no cache, no cookies!

你可以试试这个。对于我没有缓存的情况,我正在使用它。

答案 3 :(得分:0)

如果要会话隔离,还可以:     const context =等待browser.createIncognitoBrowserContext();     const page =等待context.newPage(); 这将使您在每个页面上都有一个全新的起点。