使用php检查收件箱消息的Jquery选项

时间:2013-05-06 16:42:01

标签: php ajax jquery

有没有更好的方法来使用jquery和php来帮助检查收件箱等消息。我知道我可以使用设置间隔的ajax来检查给我消息的特定php文件

具有设定间隔

的类似内容
$.ajax({
    url: "message.php",
    type: "POST",
    data: { time : time_stamp },
    dataType: "json",
    success: function(data) {

                  // update the div content from here

        }
    }
});

但是有更好的方法可以做到这一点,因为设置的时间间隔比如每个10分钟,并说如果用户在一个页面上花了8分钟并转到下一页,则间隔重新开始而不是2分钟。< / p>

所以我想知道是否有可能使用php cron jobs或类似的东西来触发ajax请求以更好地处理这种情况。

欢呼的家伙:)

2 个答案:

答案 0 :(得分:1)

您可以使用长轮询来保持连接处于打开状态,直到消息可用或达到时间限制为止。

基本上你只是给你的Ajax调用一个很长的超时,让你的服务器端脚本在消息可用之前根本不响应。您的客户端将保持连接打开直到超时,然后再次打开连接。您将获得即时反馈,但必须维持开放的HTTP连接。它也受到所有浏览器的支持。

请参阅此答案以获取示例和更深入的解释:How do I implement basic "Long Polling"?

答案 1 :(得分:0)

在我看来,WebSockets将是实现这一目标的好方法。这为您提供了实时的客户端/服务器交互。并非所有浏览器都支持此功能,但如果浏览器不支持,您可以自动回退到长轮询的客户端库。 Socket.io是一个这样的库和一个用于Web套接字的良好客户端库。我从来没有使用PHP做过网络套接字服务器,但我想也有很好的选择。