【问题标题】:How to cache an asset when the URL of the asset has a variable query parameter?当资产的 URL 具有可变查询参数时,如何缓存资产?
【发布时间】:2018-04-12 19:17:34
【问题描述】:

我有一个简单的延迟问题,我认为应该可以解决,但我的想法已经不多了。任何帮助将不胜感激。

我有一个永远不会改变的页面,它托管在美国,但很多客户都在日本,而且延迟很糟糕。

问题是页面中的 Javascript 代码需要从源传递的 ID。因此,我们将 id 放在查询参数中,这很有效,但它破坏了缓存并且延迟很可怕。它应该在本地缓存。 id 是一个随机的主键,不可预测,但实际页面永远不会改变。

因此,问题是浏览器永远不会缓存页面,尽管内容永远不会改变。我可以看到浏览器只看到不同的 url 并绕过缓存,但现在我们做单页应用程序和花哨的 javascript,我认为我应该对此有更多的控制权。无论哪种方式,我似乎都找不到可接受的解决方案。

我们尝试使用 openWindow() 并稍后传递 id,但 openWindow 不能可靠地工作,因为许多浏览器会阻止弹出窗口。我们还尝试了一个将大型 Javascript 作为库引用的最小页面,但这仍然需要跨越太平洋。我可以访问可能的前端,它有一些配置可以忽略查询参数,但是需要事先知道参数的值......等等等等。

..我卡住了。请帮忙。

【问题讨论】:

  • 也许加载页面然后发送一个ajax请求来获取ID?
  • 感谢您的 cmets Yaakov。有趣的想法,但这需要我从一开始就有的一小部分跨越太平洋。我认为应该有更好的方法。

标签: javascript html caching single-page-application web-performance


【解决方案1】:

您可以使用哈希:

https://www.mypage.com#123456789

哈希不会传输到服务器并保留在浏览器端。 你可以在 JS 中阅读它:

window.location.hash

【讨论】:

  • 这显然看起来像解决方案和“正确”的解决方案。我会立即测试它。提前致谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-07
  • 2013-05-19
  • 2017-09-09
  • 1970-01-01
  • 2012-03-02
  • 2012-04-07
相关资源
最近更新 更多