如果资产的URL具有可变查询参数,如何缓存资产?

时间:2018-04-12 19:17:35

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

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

我有一个永不改变的页面,它在美国托管,但很多客户都在日本,而且延迟太可怕了。

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

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

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

..我被困住了。请帮忙。

1 个答案:

答案 0 :(得分:1)

您可以使用哈希:

https://www.mypage.com#123456789

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

window.location.hash