Javascript 不断更新HTML文本而不刷新页面

Javascript 不断更新HTML文本而不刷新页面,javascript,html,jquery,ajax,raspberry-pi,Javascript,Html,Jquery,Ajax,Raspberry Pi,我正在为我的Raspberry Pi制作一个程序,它通过USB连接到一个DSLR相机,并通过一个web界面允许你改变ISO、快门速度等。。。。我已经在后端通过python实现了这些功能,但是我在网页上显示数据时遇到了问题。我一直在使用AJAX读取txt文件,然后更新HTML网页,而用户无需刷新页面,但这似乎非常不可靠。有时它工作得很好,有时它只在我的笔记本电脑(Win10)上工作,而不在我的手机(Chrome、Android)上工作,有时它只在我刷新页面时更新 我知道后端和文本文件都工作正常(每

我正在为我的Raspberry Pi制作一个程序,它通过USB连接到一个DSLR相机,并通过一个web界面允许你改变ISO、快门速度等。。。。我已经在后端通过python实现了这些功能,但是我在网页上显示数据时遇到了问题。我一直在使用AJAX读取txt文件,然后更新HTML网页,而用户无需刷新页面,但这似乎非常不可靠。有时它工作得很好,有时它只在我的笔记本电脑(Win10)上工作,而不在我的手机(Chrome、Android)上工作,有时它只在我刷新页面时更新

我知道后端和文本文件都工作正常(每3秒更新一次),只是不断更新网页而没有刷新,在100%的时间内都不能正常工作。我当前运行的JQuery应该每500毫秒更新一次HTML文本。目前的情况是:

<p id=cameraConnected>Not Connected</p>

<span id="battery"></span>

<p>ISO Currently:</p>
<p id="cameraISO">Not Available</p>

<p>Shutter Speed:</p>
<p id="cameraSS">Not Available</p>

未连接

国际标准化组织目前:

不可用

快门速度:

不可用


(功能(){
$(“#cameraConnected”).load(“connectedCamera.txt”);
$(“#cameraISO”).load(“ISO.txt”);
$(“#cameraSS”).load(“SS.txt”);
$(“#电池”).load(“battery.txt”);
setTimeout(arguments.callee,500);
})();
我知道这在70%的情况下都有效,但是我在这里写错了什么,会导致JQuery在一段时间后停止更新或超时(特别是在移动设备上)

还是有更好的方法更可靠(请记住,网页文本应该在.txt更新后立即更新,并且不需要任何用户输入(例如按钮)来更新)

任何帮助都将不胜感激


谢谢

我要说的是,异步调用有很多混合,超时也很快。在jQuery文档中查找
$.when()
。如果我这样做,我会将所有这些加载调用包装在
$中。然后,我将把它包装在一个命名函数中,并在setTimeout回调中使用它。然后我将setTimeout的调用移动到“$.when”调用的
.done
部分。这样,它有一个递归行为,所以你可以得到你想要的无限重复的东西。
<script>

    (function() {
        $("#cameraConnected").load("connectedCamera.txt");
        $("#cameraISO").load("ISO.txt");
        $("#cameraSS").load("SS.txt");
        $("#battery").load("battery.txt");
        setTimeout(arguments.callee, 500);
    })();

</script>