blob: 1d0d2274b779a0dfdfa659520f628c37a450c654 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
---
title: PerformanceObserver.observe()
slug: Web/API/PerformanceObserver/observe
tags:
- 性能
- 性能监测对象
- 接口
translation_of: Web/API/PerformanceObserver/observe
---
<div>{{APIRef("Performance Timeline API")}}</div>
<p>{{domxref("PerformanceObserver", "性能监测对象")}} 的 <strong><code>observe()</code></strong> 方法用于观察传入的参数中指定的性能条目类型的集合。当记录一个指定类型的性能条目时,性能监测对象的回调函数将会被调用。</p>
<h2 id="语法">语法</h2>
<pre class="syntaxbox"><em>observer</em>.observe(<em>options</em>);
</pre>
<h3 id="参数">参数</h3>
<p> </p>
<dl>
<dt><em>options</em></dt>
<dd>一个只装了单个键值对的对象,该键值对的键名规定为 <code>entryTypes</code>。<code>entryTypes</code> 的取值要求如下:</dd>
</dl>
<ul>
<li><code>entryTypes</code> 的值:一个放字符串的数组,字符串的有效值取值在{{domxref("PerformanceEntry.entryType", "性能条目类型")}} 中有详细列出。如果其中的某个字符串取的值无效,浏览器会自动忽略它。</li>
<li>另:若未传入 <code>options</code> 实参,或传入的 <code>options</code> 实参为空数组,会抛出 {{jsxref("TypeError")}}。</li>
</ul>
<dl>
<dt> </dt>
</dl>
<h2 id="示例">示例</h2>
<pre class="brush: js">/* 写法一 */
//直接往PerformanceObserver()入参匿名回调函数,成功new了一个PerformanceObserver类的,名为observer的对象
var observer = new PerformanceObserver(function(list, obj) {
var entries = list.getEntries();
for (var i=0; i < entries.length; i++) {
//处理 “mark” 和 “frame” 事件
}
});
//调用observer对象的observe()方法
observer.observe({entryTypes: ["mark", "frame"]});
/* 写法二 */
//预先声明回调函数perf_observer
function perf_observer(list, observer) {
//处理 “measure” 事件
}
//再将其传入PerformanceObserver(),成功new了一个PerformanceObserver类的,名为observer2的对象
var observer2 = new PerformanceObserver(perf_observer);
//调用observer2对象的observe()方法
observer2.observe({entryTypes: ["measure"]});
</pre>
<h2 id="规范">规范</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Specification</th>
<th scope="col">Status</th>
<th scope="col">Comment</th>
</tr>
<tr>
<td>{{SpecName('Performance Timeline Level 2', '#dom-performanceobserver-observe', 'observe()')}}</td>
<td>{{Spec2('Performance Timeline Level 2')}}</td>
<td>Initial definition of <code>observe()</code> method.</td>
</tr>
</tbody>
</table>
<h2 id="浏览器兼容性">浏览器兼容性</h2>
{{Compat("api.PerformanceObserver.observe")}}
|