gpt4 book ai didi

javascript - 当用户浏览应用程序时,在回发中保留 JavaScript setTimeout 函数调用

转载 作者:行者123 更新时间:2023-12-03 03:04:12 24 4
gpt4 key购买 nike

我相信我可以使用以下函数来创建延迟的 JavaScript 警报:

setTimeout(), clearTimeout(), setInterval() and clearInterval()

但是我如何在回发中使用它们。例如:

用户在数据库中存储了一个提醒列表。当用户登录网站时,我可以访问这些提醒并调用如下内容:

setTimeout(function() { alert("Reminder 1"); }, 10000);

取决于提醒到期日期/时间。

但是,当用户在警报通知发生之前切换页面时,我相信 setTimeout 调用不会持续存在。

使其工作的唯一方法是在每次回发时查找用户提醒并在每个页面或某种母版页中执行 setTimeout 吗?

最佳答案

这并不是真正的方法。如果您尝试构建某种通知系统,那么理想情况下它应该由服务器端驱动。

在普通的多页面网站中,每次呈现页面时,服务器都会检查通知,然后在模板中呈现警报或某些 UI 功能,告诉用户他们有通知。

该设置不会处于事件状态,IE 如果在服务器上发布新通知,客户端页面将不会知道它。除非您使用通知消息 api,例如 pubnub。

类似于 pubnub可以让你将消息发送到你的页面,并在你的 JS 代码中获得回调,这样你就可以在你的 dom 中渲染它。

由于您有一个多页面应用程序,因此您需要在每个页面渲染上获取/请求通知。运行超时来触发提前时刻并不是理想的解决方案。

另一种方法是通过 js 代码轮询服务器(例如每 5 分钟一次)并请求通知。

所有这些重复调用您的服务器都有一个价格标签。最好的选择是使用类似 pubnub 的内容。但这需要额外的服务器端代码才能使其工作。

关于javascript - 当用户浏览应用程序时,在回发中保留 JavaScript setTimeout 函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47245096/

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