我正在构建一个交互式页面,其中显示了一个聊天框和一个项目列表。
我打算使用 JQUERY 的 .post() 函数每 30 秒更新一次,但我意识到许多用户每天 24 小时都在选项卡中打开网页,这给服务器造成了沉重的负担。
为了防止这种情况并优化我的资源,我希望仅当用户在页面上处于活动状态时才每 30 秒执行一次数据库轮询;在被动情况下,我想要一个 5 分钟的投票。
我怎样才能做到这一点?(我正在使用 PHP 和 MYSQL)
也许您可以创建一个基于onScroll事件的函数?但我想这取决于你对“活跃”的定义是什么。
也许尝试检测光标位置的变化。
如果用户转到其他选项卡,我不确定如何使用光标位置检查方法。我会为你准备测试(只有js)
W3C 实际上开始page visibility
作为文档属性工作:http ://www.w3.org/TR/page-visibility/
但现在是更好的解决方案。看看这个答案:https ://stackoverflow.com/a/1060034/390747