Как я могу отключить кеш в кукловоде?

1

Я хочу отключить кеш кукольника, может ли кто-нибудь рассказать мне, как я могу это сделать? Я нашел этот page.setCacheEnabled(enabled) но я не мог понять, как использовать его.

Я знаю, что браузер запущен без кеша или файлов cookie, но в моем случае браузер всегда работает в фоновом режиме, поэтому нужно другое решение.

Теги:
puppeteer

3 ответа

1
Лучший ответ

Согласно документам кукловода, вы можете использовать await page.setCacheEnabled(enabled)

Это было добавлено еще в декабре. См. Вопрос Git Hub № 1609

Если вы посмотрите на изменения фиксации, есть тест, например

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

Каждый запуск браузера начинается с чистого HTTP-кеша и без каких-либо файлов cookie.

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

Вы можете попробовать это. Для моих случаев без кеша я использую это.

  • 0
    Здравствуйте, я знаю об этом, но в моем случае браузер всегда работает в фоновом режиме, поэтому я хочу, чтобы отключить кэш.
  • 0
    Я не нашел экспертного решения для этого, другим способом я поставил cron для очистки каталогов через определенный промежуток времени из / var / lib / puppet / client_data / catalog /. это не очень рекомендуется в вашем случае.
Показать ещё 1 комментарий
0

Вы можете использовать cdpSession.send() для отключения кеша:

const client = await page.target().createCDPSession();
await client.send( 'Network.setCacheDisabled', { 'cacheDisabled' : true } );

Кроме того, вы можете использовать более читаемый page.setCacheEnabled():

await page.setCacheEnabled( false );

Ещё вопросы

Сообщество Overcoder
Наверх
Меню