仅当用户处于活动状态时,JQUERY轮询MYSQL数据库

时间:2013-05-21 17:21:07

标签: php jquery mysql

我正在构建一个交互式页面,其中显示了聊天框和项目列表。

我打算使用JQUERY的.post()函数每30秒更新一次,但我发现很多用户每天24小时都会在标签页中打开网页,这会给服务器带来沉重负担。

为了防止这种情况并优化我的资源,我希望只有用户在页面上处于活动状态时才会每30秒执行一次数据库轮询;在被动案件中,我想进行5分钟的民意调查。

我怎样才能做到这一点? (我正在使用PHP和MYSQL)

2 个答案:

答案 0 :(得分:0)

也许你可以创建一个基于onScroll事件的函数?但我认为这取决于你对“主动”的定义。

答案 1 :(得分:0)

也许尝试检测光标位置的变化。

  1. 在页面加载启动setInterval方法向PHP发送请求
  2. 添加adittional setInterval以检查用户光标是否正在移动
  3. 如果没有等待一段时间再清除1个间隔。
  4. 如果是,则允许间隔正常工作。
  5. 如果用户转到其他标签,我不确定如何处理光标位置检查方法。我会为你准备考试(只有js)

    编辑:

    W3C实际上开始使用page visibility作为文档属性:http://www.w3.org/TR/page-visibility/

    但是现在是更好的解决方案。看看这个答案:https://stackoverflow.com/a/1060034/390747