共享池
♻️ `pkg/sdk/shared.go` — 无需管理 Client 的便捷函数。
Shared* 函数底层用进程内全局共享池(pool_singleton),适合脚本/CLI 风格的零散调用,自动复用 Chrome。
📁 源码:
pkg/sdk/shared.go
函数
| 符号 | 源码 | 说明 |
|---|---|---|
SharedScreenshot(url, opts) | L24 | 截图 |
SharedCapture(url, options...) | L29 | 链式 |
SharedCaptureWithContext | L34 | 带 ctx |
SharedScreenshotWithContext | L39 | 带 ctx |
SharedScreenshotBytes | L62 | 取字节 |
SharedScreenshotHTML | L105 | 取 HTML |
SharedScreenshotHeaders | L117 | 取响应头 |
SharedScreenshotCookies | L136 | 取 Cookies |
SharedScreenshotConsole | L155 | 取 Console |
SharedScreenshotNetwork | L174 | 取网络日志 |
SharedScreenshotWithFormat | L193 | 自定义格式 |
SharedScreenshotToPath | L209 | 直接存盘 |
与 Client 的区别
Client:显式构造、显式关闭,控制力强Shared*:零管理,首次调用自动建池,进程退出时释放
内部流转
何时用
Shared vs Client,一句话抉择
- 🪶 一次性脚本/演示/示例 →
SharedCapture,零管理,写一行跑一次 - 🏢 长驻服务/需要自定义池大小/远程 Chrome/精确关闭时机 →
Client
Shared* 首次调用自动建全局单例池,进程退出时释放——你完全不用管生命周期,代价是控制力弱。
需要细粒度控制(自定义池大小、远程 Chrome、关闭时机)用 Client。