指示浏览器缓存忽略某些URL参数

时间:2017-01-12 14:30:34

标签: caching iframe browser-cache

我想要两个iframe

 <iframe src="www.URL.com?name=benny&runtime=1231231>
 <iframe src="www.URL.com?name=benny&runtime=757847584>

在不同时间加载以映射到浏览器中的相同缓存值。服务器与此无关。基本上,有没有办法让chrome,firefox等...在查找src时,cache api忽略某些参数(在这种情况下&#39; runtime&#39;)。

传递单独的参数或单独调用运行时将无法在用例

中使用

1 个答案:

答案 0 :(得分:1)

这是不可能的。您需要从src中删除具有不同值的参数,或者使用XMLHttpRequest和blob来请求资源,并使用JavaScript从请求URI中删除参数。如果您将使用XMLHttpRequest,您还需要考虑同源政策。

浏览器缓存键是HTTP方法和URI的组合。查询参数是URI的一部分。相关摘录自HTTP 1.1 specification

  

主缓存密钥由请求方法和目标URI组成。      但是,由于目前常用的HTTP缓存通常是有限的      为缓存对GET的响应,许多缓存只是拒绝其他方法      并仅使用URI作为主缓存密钥。

有关详细信息,请在MDN上查看Eric Bidelman,New Tricks in XMLHttpRequest2 articleXMLHttpRequest pageBlob Web APIs page上的Same-origin policy page

如果您控制为您的资源提供服务的服务器,您还可以调整它以通过某些参数更改缓存条目。例如,在ASP.NET MVC中,您可以使用VaryByParam属性的OutputCache属性。有关详细信息,请查看Microsoft ASP.NET团队的Improving Performance with Output Caching article