Javascript Ajax If语句问题
我正在制作一个网站,根据数据库中的一列内容,javascript将执行一个窗帘任务(使用ajax)。这很好,但是在if语句中,当满足要求时,它会不断重复,因为它在setInterval内。对我来说,粘贴代码并给您一个查看的机会可能更容易Javascript Ajax If语句问题,javascript,ajax,Javascript,Ajax,我正在制作一个网站,根据数据库中的一列内容,javascript将执行一个窗帘任务(使用ajax)。这很好,但是在if语句中,当满足要求时,它会不断重复,因为它在setInterval内。对我来说,粘贴代码并给您一个查看的机会可能更容易 setInterval(function(){ $("#div").load("content.php"); if ($('#div:contains("hello")').length > 0) { alert("He
setInterval(function(){
$("#div").load("content.php");
if ($('#div:contains("hello")').length > 0) {
alert("Hello, world!");
}
}, 200);
正如您在上面看到的,警报将以间隔设置为的速度永远发出警报。抱歉,如果我不清楚,我不知道如何在论坛上正确提问 我假设您使用setInterval来检查div是否已经获取了其内容。 这可以通过回调(或承诺)来解决 jQuery的load方法(您正在使用)提供了一个回调函数“complete”。看见
我认为你从一开始就不了解如何完成这项任务。我建议您了解异步操作在javascript中是如何工作的 您在这里试图实现的目标可以通过以下方式实现:
$.get("content.php", function( data ) {
$("div").html(data);
if (data.indexOf("hello") > -1) {
alert("Hello, world");
}
});
看起来不错,但是,它不再像以前那样自动更新。是的,我缺乏理解,因为我对JavaScript几乎一无所知。我只是一个简单的PHP孩子,不是针对NilsGarland的个人攻击,更多的是建议你在尝试实现这种东西之前多读一读。当您说自动更新时,是因为content.php的内容发生了变化吗?如果是这样的话,您可以将上述函数包装到原始的setInterval函数中以获得结果(顺便说一句,这样的函数不应该在生产中使用)
$.get("content.php", function( data ) {
$("div").html(data);
if (data.indexOf("hello") > -1) {
alert("Hello, world");
}
});