我正在寻找一种用实时数据填充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,就像在示例中一样,这对服务器来说是否会有任何不良影响?
旁注:这将在家庭网络上运行。
谢谢!
答案 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);
});
}