对于性能更好的两个函数在同一个setInterval()或两个不同的setInterval? - Javascript

时间:2018-03-17 17:10:02

标签: javascript performance setinterval user-experience

对于性能更好的是同一个setInterval()中的两个函数或者不同的setInterval()中的每个函数?

A

setInterval(function(){ 
 one();
 two(); 
}, 60000);

function one(){
 //code
}

function two(){
 //code
}

B

setInterval(function(){ 
 one();     
}, 60000);

setInterval(function(){      
 two(); 
}, 60000);

function one(){
 //code
}

function two(){
 //code
}

你有什么建议? 非常感谢...

1 个答案:

答案 0 :(得分:1)

  

对于性能更好的是同一个setInterval()中的两个函数或者不同的setInterval()中的每个函数?

关于表现的观点很少。

从这两个功能的效果,只需拨打setInterval()一次就更快,从one()调用two()然后调用one()会更快匿名函数的上下文而不是时序事件上下文。还值得一提的是,这两个函数可能与JS编译器或JS JIT一起内联/合并。

用户体验的角度来看,最好将长函数拆分为两个,以便在这些函数之间处理用户界面事件。换句话说:

  1. 处理用户事件(例如,鼠标点击)。
  2. 调用长函数two()
  3. 再次处理用户事件。
  4. 调用长函数one()
  5. 处理用户事件。
  6. 对于用户体验而言,

    会比以下更好:

    1. 处理用户事件。
    2. 调用巨大的合并功能two()和{{1}},挂起浏览器一段时间。
    3. 处理用户事件。
    4. 最后一点。从程序的整体性能开始,它完全无关紧要,因为这些调用之间的间隔时间很长,所以它对整体性能没有任何影响。