setExtraTiming

该接口用于补充加载 Lynx 页面前的关键性能数据,具体包括 InitContainerEntry 中的以下内容:

  • 页面打开时间 (openTime)
  • 准备 TemplateBundle 的起始时间戳 (prepareTemplateStart)
  • 准备 TemplateBundle 的结束时间戳 (prepareTemplateEnd)
  • 容器(Container)初始化的起始时间戳 (containerInitStart)
  • 容器初始化的结束时间戳 (containerInitEnd)

使用该接口成功更新所有时间戳后,将触发 InitContainerEntry 性能事件的发送。根据配置时机的不同,还可能触发 fcp, totalFcp, actualFmptotalActualFmp 指标的计算,并发送新的性能事件 MetricFcpEntryMetricActualFmpEntry

CAUTION

extraTiming 为不可覆盖项,即多次调用该接口重复更新某个时间戳不会产生效果。

语法

Android

public void setExtraTiming(TimingHandler.ExtraTimingInfo extraTiming);

参数说明

  • extraTiming: TimingHandler.ExtraTimingInfo:用于补充加载 Lynx 页面前的关键性能数据。ExtraTimingInfo 类型的具体定义如下:
public static class ExtraTimingInfo {
    // 页面打开时间,对应 InitContainerEntry 中的 openTime。
    public long mOpenTime = 0;
    // 准备 TemplateBundle 的起始时间戳,对应 InitContainerEntry 中的 prepareTemplateStart。
    public long mPrepareTemplateStart = 0;
    // 准备 TemplateBundle 的结束时间戳,对应 InitContainerEntry 中的 prepareTemplateEnd。
    public long mPrepareTemplateEnd = 0;
    // 容器初始化的起始时间戳,对应 InitContainerEntry 中的 containerInitStart。
    public long mContainerInitStart = 0;
    // 容器初始化的结束时间戳,对应 InitContainerEntry 中的 containerInitEnd。
    public long mContainerInitEnd = 0;
}

iOS

- (void)setExtraTiming:(LynxExtraTiming* _Nonnull)timing;

参数说明

  • timing: LynxExtraTiming*:用于补充加载 Lynx 页面前的关键性能数据。LynxExtraTiming 类型的具体定义如下:
@interface LynxExtraTiming : NSObject

// 页面打开时间,对应 InitContainerEntry 中的 openTime。
@property(nonatomic, assign) uint64_t openTime;
// 准备 TemplateBundle 的起始时间戳,对应 InitContainerEntry 中的 prepareTemplateStart。
@property(nonatomic, assign) uint64_t prepareTemplateStart;
// 准备 TemplateBundle 的结束时间戳,对应 InitContainerEntry 中的 prepareTemplateEnd。
@property(nonatomic, assign) uint64_t prepareTemplateEnd;
// 容器初始化的起始时间戳,对应 InitContainerEntry 中的 containerInitStart。
@property(nonatomic, assign) uint64_t containerInitStart;
// 容器初始化的结束时间戳,对应 InitContainerEntry 中的 containerInitEnd。
@property(nonatomic, assign) uint64_t containerInitEnd;

@end

兼容性

LCD tables only load in the browser

除非另有说明,本项目采用知识共享署名 4.0 国际许可协议进行许可,代码示例采用 Apache License 2.0 许可协议进行许可。