使用history.replaceState()方法时奇怪的Chrome行为

时间:2019-02-15 09:20:15

标签: javascript google-chrome

我有一个网站,用户可以通过在单个页面上滑动一系列项目来查看其内容。我使用的是history.replaceState()来实际更改当用户滑动到下一个项目(尽管他停留在同一页面上)时浏览器显示的URL。

几年前它一直工作良好,直到最近,我们发现如果您离开该页面并使用history.go(-1)返回,它可以随机显示该页面的副本。几天前。甚至更糟-它可能会与其他使用该浏览器的用户显示相同的页面。

基本上,replaceState()会以某种方式缓存页面,然后当您使用历史记录api导航回该URL时,它不会显示该页面的最新副本,而是一个较早时间的副本。

经过大量测试后,我确认此行为仅在Chrome网络浏览器中发生,无论是台式机版本还是移动版本。 Firefox,Safari,IE和大多数移动浏览器均可正常运行。

所以我一直想知道这是一个实际的Chrome错误还是我做错了什么?

0 个答案:

没有答案