我想要两个 iframe
<iframe src="www.URL.com?name=benny&runtime=1231231>
<iframe src="www.URL.com?name=benny&runtime=757847584>
它们在不同时间加载以映射到浏览器中的相同缓存值。服务器与此无关。基本上,有没有办法让 chrome、firefox 等...缓存 api 在查找 src 时忽略某些参数(在本例中为“运行时”)。
传递单独的参数或对运行时进行单独的调用在用例中不起作用
这是不可能的。您需要从以下位置删除具有不同值的参数src
or use XMLHttpRequest
和 blob 来请求资源,并使用 JavaScript 从请求 URI 中删除参数。如果你会使用XMLHttpRequest
您还需要考虑同源策略。
浏览器缓存密钥是 HTTP 方法和 URI 的组合。查询参数是 URI 的一部分。相关摘录自HTTP 1.1 规范 https://www.rfc-editor.org/rfc/rfc7234#section-2:
主缓存键由请求方法和目标 URI 组成。
然而,由于当今常用的 HTTP 缓存通常是有限的
为了缓存对 GET 的响应,许多缓存只是拒绝其他方法
并仅使用 URI 作为主缓存键。
欲了解更多信息,请检查XMLHttpRequest2 中的新技巧文章 https://www.html5rocks.com/en/tutorials/file/xhr2/埃里克·比德尔曼,XMLHttpRequest 页面 https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest, Blob Web API 页面 https://developer.mozilla.org/en/docs/Web/API/Blob and 同源策略页面 https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy on MDN.
如果您控制为您的资源提供服务的服务器,您还可以调整它以通过某些参数改变缓存条目。例如,在 ASP.NET MVC 中您可以使用VaryByParam
的财产OutputCache
属性。欲了解更多信息,请检查通过输出缓存提高性能文章 https://www.asp.net/mvc/overview/older-versions-1/controllers-and-routing/improving-performance-with-output-caching-cs由 Microsoft ASP.NET 团队开发。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)