gpt4 book ai didi

javascript - onbeforeunload 事件可以完成 "too slowly"吗?我缺少什么?

转载 作者:行者123 更新时间:2023-11-28 07:53:54 25 4
gpt4 key购买 nike

这似乎是一种常见的投诉,但我没有看到任何完全相同的投诉,更重要​​的是,我没有看到任何有效的答案,所以我加入了人群。

我有一些代码可以实现

window.onbeforeunload = function() { PubNub.publish(...); };

PubNub channel 发布消息当用户离开当前页面时。这是一个聊天论坛,我们想要发布用户 X 不再在房间中的事实。 (请抑制提出其他设计的冲动,例如让每个用户发送心跳;这只是我正在玩的一个玩具项目。)

在另一个浏览器选项卡中观看 channel ,我发现 PubNub 消息在我的情况下 100% 成功发布

  • 关闭标签页

偶尔(是和否)当我

  • 点击地址栏中的圆圈图标进行刷新

但显然我从来没有

  • 点击链接即可离开
  • 通过在地址栏中输入新网址进行导航
  • 通过在地址栏中输入相同的网址进行刷新
  • 点击⌘R刷新

请注意,即使在我的 onbeforeunload 处理程序中放入 return "please don't exit"; 也会导致不稳定的发布:有时我在地址栏中输入相同的 URL,然后发布就会发生,有时我输入相同的 URL 并且不会发布。

这是 Safari 的一些怪癖吗?如果是,是否有已知的解决方法?或者,PubNub.publish() 是否在 onbeforeunload 事件期间“太慢”或“太多线程”而无法成功?我不太明白 onbeforeunload 是如何工作的。

(目前,可以访问整个代码 here ,但如果您从现在起一个月后阅读此问题,请注意该链接可能已失效和/或已修复。)

最佳答案

这正是我们的状态功能的用途。在这里查看:

http://www.pubnub.com/docs/javascript/overview/presence.html

这样,当您“离开” channel 时,状态系统可以将其广播给感兴趣的人。这是您要找的吗?

杰里米

关于javascript - onbeforeunload 事件可以完成 "too slowly"吗?我缺少什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26374421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com