How to receive data continuously and update HTML table?

岁酱吖の 提交于 2019-12-24 07:08:02

问题


I am new to Web Development. I'm creating a web application where I need to use ZMQ Library for receiving data continuously and update a html table in real-time.

I tried a lot and just succeeded in receiving a single data packet. Later I'm calling the function recursively to get all data packets. But, by the time I call the function, I already lost some packets in the gap.
Following is the javascript function I'm using in index.php and test.php for receiving data using ZMQ:

Javascript function inside index.php

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 for receiving data using 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;

I even tried running the php script inside the javascript function but had no luck. I also tried using an infinite loop in test.php to receive data as following but now as the loop is not ended I stopped receiving even a single packet.

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

Any help to solve this problem or even suggestion to any different approach is highly appreciated. Thank you.

来源:https://stackoverflow.com/questions/43029009/how-to-receive-data-continuously-and-update-html-table

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!