如何使用JQuery获取实时数据

时间:2014-04-30 13:04:33

标签: jquery ajax

我正在寻找一种用实时数据填充div的有效方法。

这就是我现在正在使用的。

    $(document).ready(function() {                  
            setInterval(function() {
                var datatyp = 'A';
                var db = 0;
                var byte = 4;
                var bit = 7;
                $('#output2').load('plc.php?function=read-bit', {'datatyp':datatyp, 'db':db, 'byte':byte, 'bit':bit});
            }, 100)              
        }); 

有更好的更有效的方法吗?此外,如果我将间隔设置为100ms,就像在示例中一样,这对服务器来说是否会有任何不良影响?

旁注:这将在家庭网络上运行。

谢谢!

2 个答案:

答案 0 :(得分:0)

看看推送数据。有了它,您可以将数据从服务器推送到客户端而不是拉动。

如果您这样做,只有在有新数据时才会使服务器感到紧张。

带有socket.io的NodeJS就是一个例子。

否则你可以寻找像pusher.com这样的推送服务

答案 1 :(得分:0)

每100毫秒发出一次请求是批次的请求。您确定需要快速更新吗?即使是本地服务器也是如此。

其次,在进行一致的AJAX请求时,最好在完成上一个请求时使用setTimeout发出新请求。这样,如果服务器响应开始变慢,您最终可能无法获得数百个排队请求。试试这个:

$(document).ready(function() {   
    loadData();              
}); 

function loadData() {
    var datatyp = 'A';
    var db = 0;
    var byte = 4;
    var bit = 7;
    $('#output2').load('plc.php?function=read-bit', { 'datatyp': datatyp, 'db': db, 'byte': byte, 'bit': bit}, function() {
        setTimeout(loadData, 100);
    });
}