Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中连续执行代码?_Javascript_Php_Jquery_Html - Fatal编程技术网

如何在javascript中连续执行代码?

如何在javascript中连续执行代码?,javascript,php,jquery,html,Javascript,Php,Jquery,Html,我有一个HTML文件和一个PHP文件。index.php显示一个值,该值被传输到servo.php。php将该值写入名为/dev/servoblaster的文件中 当前,仅当我使用函数单击按钮时,才会显示该值。 我希望连续显示和发送值,而不是通过按下按钮。 您可以在此处找到这两个文件: 函数:(您也可以在HTML文件中找到它) HTML文件的body标记: <button onclick="tilt()">Tilt</button> <input

我有一个HTML文件和一个PHP文件。index.php显示一个值,该值被传输到servo.php。php将该值写入名为/dev/servoblaster的文件中

当前,仅当我使用函数单击按钮时,才会显示该值。 我希望连续显示和发送值,而不是通过按下按钮。

您可以在此处找到这两个文件:

函数:(您也可以在HTML文件中找到它)

HTML文件的body标记:

    <button onclick="tilt()">Tilt</button>

    <input type="range" id="tiltRange" value="140" max="170" min="60">

    <text id="tilt_Range"></text>
Tilt

您可以使用setInterval在特定时间间隔执行任何代码

 setInterval(function () {
           document.getElementById("tiltRange").value;
                          document.getElementById("tilt_Range").innerHTML = tilt;
                          var xhttp = new XMLHttpRequest();
                          xhttp.open("GET", "servo.php?dir=P1-11=" + tilt, true);
                          xhttp.send();

        },30000);

您可以使用
setInterval
每隔
n
秒调用一次脚本:

setInterval(tilt, 5000); 
将每隔5秒调用
tilt()

编辑:

添加了
clearInterval
示例:

var doIt = setInterval(tilt, 5000);
然后,您可以这样清除/停止它:

clearInterval(doIt) 
因此,您应该为“停止”按钮分配一个单击处理程序,该按钮调用clearInterval。

本页上“Dhara Parmar”的答案对我很有用

我需要一个滚动事件触发器,例如当用户向下滚动到某个位置的网页时,会发生一个事件,例如弹出或警告消息

以下是一个例子:

setInterval(function () 
    {
        if ($(window).scrollTop() > 1200) // at what scroll position 
            {
                alert("hello");
            }

    }, 10); // time repetition interval in milliseconds

在本例中,您可以使用以下语法使用setInterval:

var interval = setInterval(function () 
{
    var tilt = document.getElementById("tiltRange").value;
               document.getElementById("tilt_Range").innerHTML = tilt;
               var xhttp = new XMLHttpRequest();
               xhttp.open("GET", "servo.php?dir=P1-11=" + tilt, true);
               xhttp.send();
}, 5000);
当你想阻止它这样做时,只要做:

clearInterval(interval);
希望有帮助:)
如果不是这样,请告诉我

使用setInterval函数。设置间隔(“倾斜”,5000);你想设置一个计时器并每x秒调用一次函数吗?@PaulFitzgerald如果函数执行正确,那么是的。在这种情况下,我宁愿使用WebSocket而不是超时。看看这个例子:为什么不直接绑定输入元素的变更事件(最终在文档就绪时触发它)???因为如果输入值不变,就没有理由向服务器发送无用的请求。我在示例中添加了一个任意的5000毫秒数(这应该是显而易见的)——这取决于OP来确定此功能。就个人而言,我会检查请求是否完整,如果不完整,请不要再次调用该函数,或者类似的内容,但正如我所说,这是OP.Ya的练习,这是我的观点。比使用间隔更好的方法是在ajax completeIndeed上使用递归调用的超时-为什么不添加对此效果的答案?听起来似乎是OP的理想解决方案。因为这只是一个XY问题,OP应该将更改事件绑定到输入元素以向其发送请求server@Stuart如何停止设置间隔(倾斜,5000);功能?我试图停止它:我向tilt()函数添加了一个if循环(if(tiltstop==false){…}),然后我制作了一个重置按钮,将变量tiltstop设置为true。但它不起作用。那么如何停止setInterval()?
clearInterval(interval);