条件循环或条件循环,从性能的角度来看最好

时间:2011-07-11 12:36:13

标签: javascript optimization

这可能是编码中的一种常见模式,虽然我知识不足以识别它或使用正确的术语(我当时会用Google搜索)。
当你创建一个将在循环中调用方法的对象,但循环的内容可以根据一组条件改变时,你做(伪代码):

method _method($condition){
    switch($condition){}
}

method init($condition){
  switch($condition){
     case 1:
         this._method = function(){};break;
     case 2:
         this._method = function(){};break;
     ....
  }
}

我更喜欢版本1,因为它更易于维护,但我觉得版本2更轻。我是对的吗?

我意识到答案可能会有很大差异,具体取决于用例,所以这是我的:我有一个javascript滑块,实现为jQuery插件。根据选项,当滑块到达最后一帧时,它会向后滚动以开始,或者无缝循环。现在,如果它必须无缝循环,那么当每个幻灯片前进时,我必须将刚刚消失的元素设置为在最右边排队。这意味着我必须检测元素何时从视图中消失,并对scrollLeft值进行其他检查以及如果我只是简单地滚动我不需要做什么。 那我该怎么办呢?

2 个答案:

答案 0 :(得分:3)

我相信你明白这一点,但值得重复:

  
    

如果没有损坏,请不要修复它。

  

通过思考,你几乎不会在非玩具软件中发现性能问题。

当人们学习如何解决性能问题时(as, IMHO, I have), 他们经常被问到秘密是什么。 秘诀很简单 - 不要猜测,做诊断。 Here's the method I use.

每个人都知道,但无论如何他们都在猜测 例如,查看this question的答案。

答案 1 :(得分:1)

您的用例似乎很简单,并且不需要太多的计算时间,但您应该使用更易读的代码并且更易于维护。 使用性能关键代码时,应尽可能简短/便宜地将代码保存在循环中。