我正在处理 PBI 报告,该报告可通过浏览器访问。我可以看到加载报告的查询在第一次访问时被缓存,这使得第二次加载速度更快。但是,如果我进行多次交互(选择切片器、过滤器和打开子报告)并打开其他 2-3 个报告并执行上述相同操作,然后返回到第一个报告,我可以看到查询请求再次被触发,而不是从浏览器缓存加载它。这意味着我可能已达到缓存限制。
请注意,我的报告本身的查询请求在响应中没有任何 Cache-max Age 标头。
我希望它有某种缓存限制设置(可能适用于所有浏览器)。如果已设置,该值是多少?我可以更改该值以增加浏览器缓存吗? ?
从Chrome浏览器的缓存设置中我可以看到图像和文件的最大缓存大小始终在320MB以内。这是所有浏览器的共同限制吗?
缓存大小
不同浏览器的缓存功能不同。每个浏览器通常没有明确的“规则”,并且缓存限制和功能在设备和浏览器之间可能有所不同。
您说过最大缓存大小为 320MB。对于您的设备来说,这可能始终如此,但如果您检查不同的设备或配置不同的设置,情况就会改变。 Chrome 通常使用大于 320MB 的缓存大小,根据用户的硬盘空间,甚至可以达到千兆字节。 Microsoft Edge 和 Firefox 的功能非常相似。
Safari 的缓存有点混乱,因为 iOS 对其进行了限制以优化设备性能。 Firefox 也使用动态缓存,但是是可配置的(如下所述),并且您可以比 Safari 缓存更清楚地跟踪其大小。
增加缓存大小
您可以增加 Chrome 上的缓存大小。您无法在任何常见浏览器上调整最终用户的缓存大小。
对于 Chrome,您可以使用以下步骤轻松更改本地缓存:
在 Windows 上,现在将显示为
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disk-cache-size=524000000
这会将缓存设置为大约 524MB,但可能不是该值,如此处所述; Chrome 将其视为缓存大小应为多少的“提示”。将其增加到一个很大的值似乎是可取的,但回报会递减,并且如果太大,实际上可能会抑制性能。
要更改 Firefox 上的缓存大小,请参阅本文。
您可以通过 GUI 更改 Microsoft Edge 中的缓存大小,如此处所述。
标题
您说过您没有将
Cache-Control: max-age
设置为标题,但这样做可能会有所帮助。例如,如果您希望缓存持续 24 小时,您可以执行 Cache-Control: max-age=86400
。请记住,如果您加载动态内容但告诉浏览器将内容保留整整 24 小时,则可能会遇到问题。如果您有真正的静态内容,您可以根据需要缓存它;相反,真正的动态内容通常会用 Cache-Control: max-age=0
设置。
优化缓存的 PBI 报告
如果缓存对您很重要,您可以相应地设计您的 PBI 报告。