jQuery检查setInterval函数中的服务器更新 - 还有什么可以使用?

时间:2013-12-22 11:16:36

标签: javascript jquery ajax

我想创建代码,该代码将检查是否出现了一些新的muser消息并显示其计数。我知道这很简单 - 只需在setInterval函数中进行ajax调用:

$(document).ready(function () {

    setInterval(function () {
        //create an ajax call
    }, 30000);

});

但这不是重点 - 我找不到其他方法的任何信息。这是通过设置setInterval函数来检查更新来实现此目的的唯一方法吗?

修改

好的,我发现http://socket.io/也许就是我正在寻找的东西

2 个答案:

答案 0 :(得分:4)

你也可以在回调时使用setTimeout,这样每次从服务器回来的东西都会在30秒之后设置另一个计时器。这样做的好处(即使响应很慢,服务器也不会超载您的请求)但也有缺点(一旦没有应答轮询将不再运行)。

还有其他方法可以关注服务器;在Google中搜索“长轮询”一词。

答案 1 :(得分:2)

这是最简单的解决方案。否则你应该使用像http://socket.io这样更低级别的套接字,但这样你就可以向客户端实现推送消息。

以下是nodejssocket.io推送通知服务器的教程:http://www.gianlucaguarini.com/blog/nodejs-and-a-simple-push-notification-server/

这是PHP的另一个: http://pusher.com/tutorials/html5_realtime_push_notifications