jquery实现轮询

 function showUnreadNews()
    {
        $(document).ready(function() {
            $.ajax({
                type: "POST",
                url: "unread_list.php",
                dataType: "json",
                success: function(data) {
                    //alert(msg);
                    $("#msg").append("data "+data);
                }
            });
        });
    }
    setInterval('showUnreadNews()',500);//轮询执行,500ms一次
 
<?php
session_start();
if (empty($_POST['time']))
    exit();
set_time_limit(0); //无限请求超时时间    
$sae=new SaeMysql();
$sql="SELECT * , COUNT(`chat_id`) FROM  `chat` WHERE  `is_read` ='0' AND `to_user_id` =".$_SESSION["userid"]." GROUP BY  `from_user_id` ";
while (true) { 
    usleep(500000); //0.5秒    
    $result=$sae->ge
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用WebSocket实现轮询的基本思路是客户端通过WebSocket连接到服务器,服务器向客户端发送数据,客户端接收并处理数据后再发送请求获取下一次数据。由于WebSocket是双向通信的,在客户端和服务器之间建立一个持久的连接,因此可以避免频繁地建立和关闭连接,提高效率。 下面是一个使用WebSocket实现轮询的示例代码,其中使用了Python的tornado框架: 服务端代码: ``` import tornado.websocket import tornado.web import tornado.ioloop import time class WebSocketHandler(tornado.websocket.WebSocketHandler): def open(self): print("WebSocket opened") def on_message(self, message): print("Received message: {}".format(message)) def on_close(self): print("WebSocket closed") class PollingHandler(tornado.web.RequestHandler): def get(self): self.render("polling.html") class PollingDataHandler(tornado.websocket.WebSocketHandler): def open(self): self.update() def update(self): # 模拟获取数据 data = str(time.time()) self.write_message(data) # 每隔一段时间获取一次数据 tornado.ioloop.IOLoop.current().call_later(1, self.update) def on_close(self): print("WebSocket closed") if __name__ == "__main__": app = tornado.web.Application([ (r"/websocket", WebSocketHandler), (r"/polling", PollingHandler), (r"/polling_data", PollingDataHandler), ]) app.listen(8080) tornado.ioloop.IOLoop.current().start() ``` 客户端代码(使用JavaScript和jQuery): ``` $(function() { // 建立WebSocket连接 var ws = new WebSocket("ws://localhost:8080/polling_data"); // 接收数据 ws.onmessage = function(evt) { console.log("Received data: " + evt.data); // 处理数据 ... // 发送请求获取下一次数据 ws.send(""); }; }); ``` 在上述代码中,服务端使用了tornado框架,创建了一个WebSocketHandler和一个PollingDataHandler,分别处理WebSocket连接和数据轮询的请求。客户端使用了JavaScript和jQuery,建立WebSocket连接并接收和处理数据。其中,PollingDataHandler的update方法模拟获取数据的过程,每隔一段时间调用write_message方法向客户端发送数据。 注意:以上代码仅供参考,实际应用需要根据具体情况进行修改和完善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值