我有一个使用时间跨度的网页,并且正在不断更新url查询字符串中的startTime和endTime,以简化将相同时间范围链接到其他用户的操作。
但是问题是,URL中更新的任何新时间都会向浏览器的全局历史记录添加新条目;创建100个基本上在同一页面上的条目。
我能够通过html 5历史API防止历史状态和“后退按钮”功能发疯,但无法更改全局历史。
如果基本URL相同,是否可以替换全局历史记录中的条目? 基本上:如果url在“?”之前相同,请替换上一个条目。
我在Google上浏览了N个页面,在Bing上浏览了一些页面。
这是浏览器历史记录的屏幕截图:
请注意,所有条目中涂黑的内容都是相同的,是我不愿意在线共享的信息。
编辑::这与浏览器的全局历史记录(Chrome中的Ctrl + H)有关。我知道window.history.replaceState,但是它不影响全局历史。参考MDN文档:
history.replaceState()的操作与history.pushState()完全相同,不同之处在于replaceState()会修改当前历史记录条目,而不是创建一个新条目。请注意,这不会阻止在全局浏览器历史记录中创建新条目。
此外,当我在angularjs应用程序中写入url时,我使用$ state.go进行了更新,并使用notify:false和location:replace进行更新,但这仅在url相等时有效。当查询字符串中的时间戳不同时,它不会读取相等的url。 $State.go with location:replace