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