小编Min*_*Kim的帖子

有没有其他方法可以在没有无限 while 循环的情况下实现“监听”功能?

我一直在思考像 React 这样的代码和库,它们可以自动对发生的事件做出反应,并且想知道所有这些是如何在 C++ 和机器代码的较低级别实现的。

我似乎无法想出任何其他方式可以使用 if not with while loop 在另一个线程上运行来实现诸如事件侦听器之类的东西。

那么这一切都在幕后吗?只是 while 一直循环下去?例如,RethinkDB 将自己宣传为具有repubsub库的“实时数据库” 。“订阅”方法是否只是在后台使用 while 循环实现的?我似乎无法找到任何相关信息。

像,插座之类的,也是。当计算机在端口上“侦听”套接字连接时,该计算机是否正在运行类似以下内容:

while(1) {
    if (connectionFound) {
        return True;
    }
}
Run Code Online (Sandbox Code Playgroud)

或者有什么我想念的吗?

javascript events loops rethinkdb reactjs

3
推荐指数
1
解决办法
274
查看次数

为什么我的 PushSubscriptions 到期这么快?

我按照教程在我的 Web 应用程序中实现推送通知,当它们工作时,它们很快就会停止工作。它似乎可以很好地处理前几个通知,但之后,有时不到五分钟,订阅就会过期,根据我的后端。我从推送服务中收到错误代码 410,教程说这意味着订阅已过期。

这太疯狂了,订阅怎么会在不到五分钟的时间内到期?我搜索了我的问题,似乎没有其他人遇到过这个问题,有些人甚至说订阅可以持续数

我尝试在我的 service worker 中为“pushsubscriptionchange”事件实现一个事件监听器,但根据Serginho 的回答,Chrome 自 2019 年起没有实现该事件,我认为从那时起就没有改变。

哦,虽然 Chrome 可以处理订阅(但如上所述只能处理一次/两次),但 Firefox 甚至不做任何事情。我感觉我快疯了。但是,如果我使用此站点测试推送订阅功能本身,它可以在 Firefox 中运行!和铬!他们在做什么而我不是?它们显示的代码与我上面链接的教程完全相同。

我现在还能做什么?我已经考虑过可能会创建一个间隔setInterval()并每隔一秒左右重新订阅用户,但我认为这行不通。

任何帮助,将不胜感激。

firefox google-chrome push-notification service-worker web-push

2
推荐指数
2
解决办法
499
查看次数