关于 generateUniqueID、getLoadState 和 getSelector 的问题
作者: suhailopensource创建于 2026年8月28日更新于 2026年8月28日
@tunetheweb 有些疑问我想问一下。 阅读过程中我无法弄清楚的一些事情。 1. generateUniqueID() 返回 v6-${Date.now()}-${random},这个前缀在 v1 到 v6 中每次都手动调整过(最近是 #764)。 它用于什么?我本来会预期版本存储在 payload 中,而不是 ID 内部,所以我推测保留它的原因是下游的原因。 2. getLoadState() 最终返回 'complete',注释说只有在浏览器缺少性能时间轴时才会发生。 但 getNavigationEntry() 在 responseStart 为 0 或错误(#137、#162、#275 这些情况)时也不会返回任何内容,因此 attribution.loadState 即使对于加载期间发生的转换也会报告 'complete'。 这是否是可接受的噪音,或者我是在误读回退策略? 3. getSelector() 将输出限制在 MAX_LEN = 100,但第一次迭代时 sel 为空,因此返回 sel || part,因此单个元素的 own part 超过限制时会返回整个元素。 一个典型的 utilityCSS 元素(div 以及约 14 个类)会生成 141 个字符的目标。 限制是否仅限于祖先链,还是叶子也应该被截断?
内容来源: GoogleChrome/web-vitals