这个条件有用吗?

时间:2013-01-09 09:57:57

标签: jquery conditional-statements

var docH = $(document).height(),
    viewPortH = $(window).height(),
    wrapper = $("section"),
    valRight = wrapper.css("right");

  if (docH > viewPortH && valRight != w3) {
    wrapper.stop().animate({
      "right": -w3
    }, 700);
  }

我想知道第二个条件valRight != w3w3是否在文档的前面定义)是否有用(性能明智)。假设代码在没有它的情况下完美运行,但我认为它可能有用:

当jQuery读取它并看到文档比窗口高时,它将执行该函数,即使right值已经是-w3,这会导致一些不必要的开销。我想通过额外的条件得到这个。但在这种情况下它是否有用?

1 个答案:

答案 0 :(得分:1)

针对两个数字的!=比排队不必要的动画帧要快得多。

但是,您可以通过以下方式节省更多时间;

var wrapper = $("section"),
    valRight = wrapper.css("right");

if (valRight != w3) {
  var docH = $(document).height(),
    viewPortH = $(window).height();


  if (docH > viewPortH) {
    wrapper.stop().animate({
      "right": -w3
    }, 700);
  }
}

...因为您将在事件height()中停止不必要的jQuery对象和valRight != (-?)w3计算。