location.href 和 window.open 的区别是什么?

作者站长头像
站长
· 阅读数 6

事情是这样的:某个 webscoket,数据通过 window.addEventListener 做监听和发送,由于某些原因增加了导航页,并且不再同一个顶级的 nav 下面,不过两个页面都有 webscoket 的启动,自己测试的时候都能收到数据!好像没有问题

然后问题来了:导航页把 window.open 切换到了 location.href ,写在 window 里面的 webscoket 的防重连状态没有重置,你没看错,location.href 渲染的 hash 页面的 没有清掉缓存?所以 webscoket 防止重连触发了,鬼吊的来了,window.addEventListener 被清掉了,数据拿不到,并且是单向的,导航页 nav => 业务页 plan 拿不到方向反过来,业务页 plan => 导航页 nav 是能拿到数据的??

有大佬解惑吗?

回复
1个回答
avatar
test
2024-06-20

window.open 是重新打开页面,肯定是刷新操作。location 如果改 hash 的变化,页面是不会刷新的,并且 hash 不会发送到后端。

至于逻辑,肯定是两个页面写了什么东西,得上代码了

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容