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

使用php检查收件箱消息的Jquery选项,php,ajax,jquery,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

是否有更好的方法使用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分钟

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


大家好:)

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

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


有关示例和更深入的解释,请参见此答案:

您可以使用长轮询保持连接打开,直到消息可用或达到时间限制

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

有关示例和更深入的解释,请参见此答案:

在我看来,这是实现此功能的一个很好的方法。这为您提供了实时的客户机/服务器交互。并非所有浏览器都支持这一点,但如果浏览器不支持长轮询,您可以获得自动回退到长轮询的客户端库。是这样一个库,也是一个很好的web套接字客户端库。我从来没有使用PHP开发过web sockets服务器,但我想也有很好的选择。

在我看来,这是一种很好的实现方法。这为您提供了实时的客户机/服务器交互。并非所有浏览器都支持这一点,但如果浏览器不支持长轮询,您可以获得自动回退到长轮询的客户端库。是这样一个库,也是一个很好的web套接字客户端库。我从未使用PHP开发过web sockets服务器,但我想这方面也有不错的选择