被setInterval减慢了我的网站的速度

时间:2018-07-22 08:37:23

标签: javascript setinterval

我想知道setInterval是否使我的网站变慢?

setInterval(function(){
    var uploadbtndiv = document.getElementById("imagesmaindiv");
    if (uploadbtndiv.childElementCount == 1) {
          document.getElementsByClassName("plusupload")[0].style.top = "17px";
    }else{
          document.getElementsByClassName("plusupload")[0].style.top = "-81px";
    }

}, 10);

1 个答案:

答案 0 :(得分:4)

setInterval不会降低您的网站速度。错误地使用它可以。在您的代码中,您计划一次操作大约每10ms发生一次。好多啊。甚至每秒执行100次的高效操作(虽然可以做到的,您的操作也可以高效执行,尽管可以接受)。

您可能不希望在示例中使用setInterval。您似乎想根据imagesmaindiv中有多少个元素来更改内容的位置。我可能会用以下三种不同方式之一进行操作:

  • 通过将if / else放入向imagesmaindiv添加元素或从中删除元素的代码中
  • 通过使用CSS,但这取决于结构
  • 通过在imagesmaindiv上使用mutation observer,所以我只在内容更改时才进行工作,而不是每秒100次