小程序
小游戏
企业微信
微信支付
扫描小程序码分享
var
time = Date.now();
setTimeout(
function
() {
console.log(
'Spend Time: '
, Date.now() - time);
}, 10);
把这里的代码写页面的onLoad中发现Spend Time很长,并不是10ms左右,虽然不可能是等于10ms,但是却比10ms多的太多了,如果传入page的对象属性很少,那么这个Spend Time才比较正常。
4 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
感谢你的研究。像3楼说的那样,JS的setTimeout可能会由于有其他代码在执行而产生延迟。这里还有一个原因:如果你是直接在Page构造器外面写的代码,这段代码会在初始化时执行,此时setTimeout的函数执行时机是不太可控的(原因包括初始化时载入的代码量较大、同时还要初始化基础库等)。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
我不是说时间,是说属性的多少。你确定是属性的个数产生的影响吗?会不会是哪个具体的属性导致的呢……因为可能影响到程序逻辑,影响到启动开销。setTimeout 本来就不是精确定时,因为 js 是单线程的,如果某段代码计算量太大造成阻塞的话,时间就会延迟。
像这个应该是10ms左右,实际有一百多ms
多……到什么程度?
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
感谢你的研究。像3楼说的那样,JS的setTimeout可能会由于有其他代码在执行而产生延迟。这里还有一个原因:如果你是直接在Page构造器外面写的代码,这段代码会在初始化时执行,此时setTimeout的函数执行时机是不太可控的(原因包括初始化时载入的代码量较大、同时还要初始化基础库等)。
我不是说时间,是说属性的多少。你确定是属性的个数产生的影响吗?会不会是哪个具体的属性导致的呢……因为可能影响到程序逻辑,影响到启动开销。setTimeout 本来就不是精确定时,因为 js 是单线程的,如果某段代码计算量太大造成阻塞的话,时间就会延迟。
像这个应该是10ms左右,实际有一百多ms
多……到什么程度?