如何连续接收数据并更新HTML表格?

时间:2017-03-26 12:57:26

标签: javascript php jquery ajax zeromq

我是Web开发的新手。我正在创建一个Web应用程序,我需要使用ZMQ Library连续接收数据并实时更新html表。

我尝试了很多,只是成功接收了一个数据包。后来我以递归方式调用函数来获取所有数据包。但是,当我调用该函数时,我已经在间隙中丢失了一些数据包 以下是我在index.php和test.php中使用的javascript函数,用于使用ZMQ接收数据:

index.php

中的Javascript函数
function samp(result)
{
    if (window.XMLHttpRequest)
    {
        xmlhttp = new XMLHttpRequest();
    }
    xmlhttp.onreadystatechange = function()
    {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
        {
            var x=document.getElementById('PageTable');
            var rowCount = document.getElementById("PageTable").rows.length;
            for (var i = 0; i < rowCount; i++)
            {
                if(x.rows[i].cells[2].innerHTML == xmlhttp.responseText)
                {
                    x.rows[i].cells[3].innerHTML=xmlhttp.responseText;
                }
            }
            samp(result);
        }
    };
    xmlhttp.open("GET","test.php?q="+result,true);
    xmlhttp.send();
}

test.php,用于使用ZMQ

接收数据
<?php
$Params = $_REQUEST["q"];
$context = new ZMQContext();
$subscriber = new ZMQSocket($context, ZMQ::SOCKET_SUB);
$subscriber->connect("tcp://localhost:5000");
$mnemonic = explode(" ", $Params);

foreach ($mnemonic as $value)
{
    if($value!="")
    {
        $subscriber->setSockOpt(ZMQ::SOCKOPT_SUBSCRIBE, $value);
    }
}

$contents = $subscriber->recv();
echo $contents;

我甚至尝试在javascript函数中运行php脚本但没有运气。我也尝试在test.php中使用无限循环来接收数据如下,但现在当循环没有结束时,我甚至停止接收一个数据包。

while(true)
{
$contents = $subscriber->recv();
echo $contents;
}

任何帮助解决此问题或甚至建议任何不同的方法都非常感谢。谢谢。

0 个答案:

没有答案