清除启动浏览器缓存
Clear Splash Browser Cache
我正在尝试可视化网站速度分析。作为无头浏览器,我使用 Splash 3.2 ...不幸的是我在获取正确的 har 文件时遇到问题。
第一个请求看起来不错,在第二个请求之后我只收到未缓存的请求。
我试图通过对 _gc 端点的 post 请求清空缓存,不幸的是没有成功。
我的 curl 请求:
$url = 'http://localhost:8050/render.har?url=' . esc_url( $url ) .'&response_body=1&wait=5&timeout=10';
$cache_url = 'http://localhost:8050/_gc';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $cache_url);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS,"cached_args_removed=1");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec($curl);
curl_reset($curl);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_REFERER, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$data = curl_exec($curl);
curl_close($curl);
_gc请求结果:
{"cached_args_removed": 0, "pyobjects_collected": 1269, "status": "ok"}
之后,我尝试使用 --disable-browser-caches 启动 Splash 以获得正确的输出,但 Splash 不会缓存任何内容,因此如果它们多次出现,则会对相同的文件发出许多请求。
有没有其他方法可以在渲染之前刷新浏览器缓存,或者我应该更喜欢使用其他无头浏览器(推荐)?
@托比亚斯
您提到您使用的是启动版本 3.2
我是 PR 821 which introduced --disable-browser-caches , and according to the changelog 的作者,此功能在 splash 版本 3.3 中登陆。
所以请升级到 splash 版本 3.3,您应该可以使用该功能。
我正在尝试可视化网站速度分析。作为无头浏览器,我使用 Splash 3.2 ...不幸的是我在获取正确的 har 文件时遇到问题。
第一个请求看起来不错,在第二个请求之后我只收到未缓存的请求。
我试图通过对 _gc 端点的 post 请求清空缓存,不幸的是没有成功。
我的 curl 请求:
$url = 'http://localhost:8050/render.har?url=' . esc_url( $url ) .'&response_body=1&wait=5&timeout=10';
$cache_url = 'http://localhost:8050/_gc';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $cache_url);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS,"cached_args_removed=1");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec($curl);
curl_reset($curl);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_REFERER, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$data = curl_exec($curl);
curl_close($curl);
_gc请求结果:
{"cached_args_removed": 0, "pyobjects_collected": 1269, "status": "ok"}
之后,我尝试使用 --disable-browser-caches 启动 Splash 以获得正确的输出,但 Splash 不会缓存任何内容,因此如果它们多次出现,则会对相同的文件发出许多请求。
有没有其他方法可以在渲染之前刷新浏览器缓存,或者我应该更喜欢使用其他无头浏览器(推荐)?
@托比亚斯
您提到您使用的是启动版本 3.2
我是 PR 821 which introduced --disable-browser-caches , and according to the changelog 的作者,此功能在 splash 版本 3.3 中登陆。 所以请升级到 splash 版本 3.3,您应该可以使用该功能。