1

有没有更好的方法来使用 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 作业之类的东西来触发 ajax 请求,以更好地处理这种情况。

欢呼伙计们:)

4

2 回答 2

1

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

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

请参阅此答案以获取示例和更深入的解释:如何实现基本的“长轮询”?

于 2013-05-06T18:16:05.400 回答
0

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

于 2013-05-06T18:30:52.697 回答