更新时间:2022-12-30 12:56:42贡献者收藏订阅更新我的文档设置返回文档如果想要知道 setdata 引发界面更新的开销,可以使用更新性能统计信息接口。它将返回每次更新中主要更新步骤发生的时间戳,可以用来大体上估计自定义组件(或页面)更新性能。版本要求基础库 2.8.5 开始支持,若版本较低,建议采取 兼容处理。使用方法可以在页面或者组件的生命周期中进行调用。示例代码javascript复制代码91234567component({ oninit() { this.setupdateperformancelistener({withdatapaths: true}, (res) => { console.log(res) }) }})入参setupdateperformancelistener 方法接受一个 options 对象和回调函数 listener 作为参数。object options属性类型描述withdatapathsboolean是否返回变更的 data 字段信息。function listenerlistener 回调携带一个 res 对象,表示一批由 setdata 引发的更新过程。根据 setdata 调用时机的不同,更新过程大体可以分为三类:●基本更新:一个批次内调用的所有 setdata,有一个唯一的 updateprocessid。●子更新:它是另一个基本更新的一个子步骤,也有唯一的 updateprocessid ,但还有一个 parentupdateprocessid。●被合并更新:它被合并到了另一个基本更新或子更新过程中,无法被独立统计。每一个成功的基本更新,都会使得 listener 回调一次。不过 setdata 究竟触发了哪类更新过程很难判断,更新性能好坏与其具体是哪类更新也没有必然联系,只是它们的返回值参数有所不同。具体返回值如下:字段类型说明updateprocessidnumber一个批次内收集到的 data 数据,分配一个更新过程的 id。parentupdateprocessidnumber对于子更新,返回它所属的更新过程 id。ismergedupdateboolean是否是被合并更新,如果是,则 updateprocessid 表示被合并到的更新过程 id。datapathsarray此次更新的 data 字段信息,只有 withdatapaths 设为 true 时才会返回。 datalistarray本批次内所有单个的 setdata 统计信息。updatestarttimestampnumber更新运算开始时的时间戳。updateendtimestampnumber更新运算结束时的时间戳。datalist 数据格式字段类型说明idnumber一个批次内收集到的 data 数据,分配一个更新过程的 id。pendingstarttimestampnumber此次 setdata 进入等待队列时的时间戳。datapathsarray单次 setdata 更新的 data 字段信息,只有 withdatapaths 设为 true 时才会返回。说明●setupdateperformancelistener 只会激活当前组件或页面的统计, parentupdateprocessid 有可能是其它组件或者页面的更新过程 id 而未被统计回调,如果想要知道页面内所有的更新过程,需要在所有组件中都调用 setupdateperformancelistener。●统计本身有一点点开销,如果想要禁用统计,调用 setupdateperformancelistener 时传入第二个参数 listener 为 null 即可。