我想要两个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;)。
传递单独的参数或单独调用运行时将无法在用例
中使用答案 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 article,XMLHttpRequest page和Blob Web APIs page上的Same-origin policy page。
如果您控制为您的资源提供服务的服务器,您还可以调整它以通过某些参数更改缓存条目。例如,在ASP.NET MVC中,您可以使用VaryByParam
属性的OutputCache
属性。有关详细信息,请查看Microsoft ASP.NET团队的Improving Performance with Output Caching article。