Javascript Ajax If语句问题

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

我正在制作一个网站,根据数据库中的一列内容,javascript将执行一个窗帘任务(使用ajax)。这很好,但是在if语句中,当满足要求时,它会不断重复,因为它在setInterval内。对我来说,粘贴代码并给您一个查看的机会可能更容易

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");
  }
});