收藏
回答

传入Page中的对象属性稍微多点的话会造成setTimeout变慢?

var time = Date.now();
        setTimeout(function () {
            console.log('Spend Time: ', Date.now() - time);
        }, 10);

把这里的代码写页面的onLoad中发现Spend Time很长,并不是10ms左右,虽然不可能是等于10ms,但是却比10ms多的太多了,如果传入page的对象属性很少,那么这个Spend Time才比较正常。

回答关注问题邀请回答
收藏

4 个回答

  • LastLeaf
    LastLeaf
    2017-05-18

    感谢你的研究。像3楼说的那样,JS的setTimeout可能会由于有其他代码在执行而产生延迟。这里还有一个原因:如果你是直接在Page构造器外面写的代码,这段代码会在初始化时执行,此时setTimeout的函数执行时机是不太可控的(原因包括初始化时载入的代码量较大、同时还要初始化基础库等)。

    2017-05-18
    有用
    回复
  • maq
    maq
    2017-05-18

    我不是说时间,是说属性的多少。你确定是属性的个数产生的影响吗?会不会是哪个具体的属性导致的呢……因为可能影响到程序逻辑,影响到启动开销。setTimeout 本来就不是精确定时,因为 js 是单线程的,如果某段代码计算量太大造成阻塞的话,时间就会延迟。

    2017-05-18
    有用
    回复
  • Sincere 🎈
    Sincere 🎈
    2017-05-18

    像这个应该是10ms左右,实际有一百多ms

    2017-05-18
    有用
    回复
  • maq
    maq
    2017-05-18

    多……到什么程度?

    2017-05-18
    有用
    回复
登录 后发表内容