JavaScript history.pushState/replaceState 为什么在频繁操作一段时间后就失效了呢?

0 0 ES6 u524du7aef javascript
DPJune
DPJune

声望值:128 0人

2018-09-25 15:48:54 提问

关注 0关注

收藏 0收藏, 139浏览

线上demo如下所示:

https://codepen.io/weisiwu/pe...

图片描述

我想实现的是,根据滚动距离来修改页面的URL,但是发现使用 history api 去实现时,当到操作一段时间后就会出现

url不在变化的情况,请问有谁了解这个问题吗?还请赐教。

---- 补充

  1. 浏览器是:

clipboard.png

  1. 当我重新打开一个页面后,再返回就又可以刷新了
请先 登录 后评论

2个回答

  • 00ffgfgf6973声望 2018-09-25 09:32

    我在浏览器上做了个测试循环修改url,间隔0.1秒修改100次,也就是10秒,URL就会停止变化停止5秒后,URL继续变化5秒内对URL做的更改都会生效你的demo上的间隔大概是10秒
    请先 登录 后评论
  • 帅气丶月半104声望 2018-09-25 09:32

    https://bugs.chromium.org/p/c... 国外有个帖子说这个事情,会出现这种状况正是因为“频繁操作”,pushState也好、replaceState也好是很耗资源的,所以频繁操作一定次数后,浏览器处于安全考虑就不再响应,过一段时间后恢复正常。
    请先 登录 后评论

注册送白菜38

悬赏追问
10
  • 10
  • 20
  • 50
  • 100
  • 200
  • 输入数值
发布追问