php - 使用 Ajax 动态从数据库获取数据,无需刷新间隔

标签 php javascript jquery ajax

我一直在处理 jquery/ajax 请求。我已经成功收到一个 ajax 请求,该请求将从数据库检索数据,问题是,我不断地提供 window.setInterval() 服务,每 x 秒刷新此函数。

我如何更改此设置以保持 ajax 请求处于事件状态,以便它更新 html 内容,而不必向我的 ajax 脚本提供多个请求。

我的代码如下:

window.setInterval(function()
{
  $(function () 
  {
    $.ajax({                                      
        url: 'Ajax.php'+SearchTerm, dataType: 'json',  success: function(rows)        
        {
        $('#NumberOfVotes').empty();

            for (var i in rows)
            {
                var row = rows[i];          
                var QuestionID = row[0];
                var Votes = row[1];
                $('#NumberOfVotes')
                .append(Votes);
            } 
        } 
    });       
  });
}, 500);

最佳答案

这很大程度上取决于您的服务器如何动态更新其内容。也就是说,您正在寻找的是 websockets。 Websocket 旨在取代长轮询范例。

编辑:由于您主要使用 php 作为服务器技术,请查看 Ratchet。我听说过有关它的好消息http://socketo.me/

这是一篇关于在 HTML 中使用 websockets 的优秀文章 http://net.tutsplus.com/tutorials/javascript-ajax/start-using-html5-websockets-today/

.NET 在 SignalR 中有一个很棒的套接字库 http://signalr.net/

有大量关于套接字的 php 文档 http://php.net/manual/en/book.sockets.php

关于php - 使用 Ajax 动态从数据库获取数据,无需刷新间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15412166/

相关文章:

javascript - 在ruby应用程序中设置事件模型的js json文件

php - Laravel 4.2 Composer 安装错误 : "could not scan for classes"

php - 在将动态虚拟主机与 dnsmasq 一起使用时,修复 phpmyadmin open_basedir 限制生效

php - Codeigniter:如何在 JOIN 查询中包含 SUM() 和 COUNT()?

php - 如何通过 Ajax 将文件从 JavaScript 传输到 PHP

jquery - 如何重新初始化已加载的 Bootstrap 表?

php - Controller 中的 Cakephp 模型常量

javascript - 自定义排序 Backbone 集合

javascript - Chrome 在定义变量之前就可以看到变量

javascript - ChartJs 中 X 轴的特定网格线