开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
开发 > 框架 > 自定义组件 > 获取更新性能统计信息
贡献者
收藏
订阅更新
我的文档
设置
如果想要知道 setdata 引发界面更新的开销,可以使用更新性能统计信息接口。它将返回每次更新中主要更新步骤发生的时间戳,可以用来大体上估计自定义组件(或页面)更新性能。
版本要求
基础库 2.8.5 开始支持,若版本较低,建议采取 兼容处理
使用方法
可以在页面或者组件的生命周期中进行调用。
示例代码
javascript
复制代码
component({
oninit() {
this.setupdateperformancelistener({withdatapaths: true}, (res) => {
console.log(res)
})
}
})
入参
setupdateperformancelistener 方法接受一个 options 对象和回调函数 listener 作为参数。
object options
属性
类型
描述
withdatapaths
boolean
是否返回变更的 data 字段信息。
function listener
listener 回调携带一个 res 对象,表示一批由 setdata 引发的更新过程。根据 setdata 调用时机的不同,更新过程大体可以分为三类:
基本更新:一个批次内调用的所有 setdata,有一个唯一的 updateprocessid。
子更新:它是另一个基本更新的一个子步骤,也有唯一的 updateprocessid ,但还有一个 parentupdateprocessid。
被合并更新:它被合并到了另一个基本更新或子更新过程中,无法被独立统计。
每一个成功的基本更新,都会使得 listener 回调一次。不过 setdata 究竟触发了哪类更新过程很难判断,更新性能好坏与其具体是哪类更新也没有必然联系,只是它们的返回值参数有所不同。具体返回值如下:
字段
类型
说明
updateprocessid
number
一个批次内收集到的 data 数据,分配一个更新过程的 id。
parentupdateprocessid
number
对于子更新,返回它所属的更新过程 id。
ismergedupdate
boolean
是否是被合并更新,如果是,则 updateprocessid 表示被合并到的更新过程 id。
datapaths
array
此次更新的 data 字段信息,只有 withdatapaths 设为 true 时才会返回。
datalist
array
本批次内所有单个的 setdata 统计信息。
updatestarttimestamp
number
更新运算开始时的时间戳。
updateendtimestamp
number
更新运算结束时的时间戳。
datalist 数据格式
字段
类型
说明
id
number
一个批次内收集到的 data 数据,分配一个更新过程的 id。
pendingstarttimestamp
number
此次 setdata 进入等待队列时的时间戳。
datapaths
array
单次 setdata 更新的 data 字段信息,只有 withdatapaths 设为 true 时才会返回。
说明
setupdateperformancelistener 只会激活当前组件或页面的统计, parentupdateprocessid 有可能是其它组件或者页面的更新过程 id 而未被统计回调,如果想要知道页面内所有的更新过程,需要在所有组件中都调用 setupdateperformancelistener。
统计本身有一点点开销,如果想要禁用统计,调用 setupdateperformancelistener 时传入第二个参数 listener 为 null 即可。
内容没有解决您的问题?您还可以前往 或 寻求帮助
凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图