blob: 63016e790304967a9c6368eb45095ddc4f757fd3 (
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
|
---
title: PerformanceEntry
slug: Web/API/PerformanceEntry
tags:
- API
- PerformanceEntry
- Web パフォーマンス
- インターフェイス
- パフォーマンスタイムライン API
- リファレンス
translation_of: Web/API/PerformanceEntry
---
<div>{{APIRef("Performance Timeline API")}}</div>
<p><span class="seoSummary"><strong><code>PerformanceEntry</code></strong> オブジェクトは、<em>パフォーマンスタイムライン</em>の一部である単一のパフォーマンスメトリックをカプセル化します。パフォーマンスエントリは、アプリケーション内の明示的な時点でパフォーマンス <em>{{domxref("PerformanceMark","mark")}}</em> または <em>{{domxref("PerformanceMeasure","measure")}}</em> を作成する (たとえば、{{domxref("Performance.mark","mark()")}} メソッドを呼び出すことによって) ことで直接作成できます。パフォーマンスエントリは、(イメージなどの) リソースのロードなどの間接的な方法でも作成されます。</span></p>
<p><code>PerformanceEntry</code> インスタンスは常に次のサブタイプのいずれかになります:</p>
<ul>
<li>{{domxref("PerformanceMark")}}</li>
<li>{{domxref("PerformanceMeasure")}}</li>
<li>{{domxref("PerformanceFrameTiming")}}</li>
<li>{{domxref("PerformanceNavigationTiming")}}</li>
<li>{{domxref("PerformanceResourceTiming")}}</li>
<li>{{domxref("PerformancePaintTiming")}}</li>
</ul>
<p>{{AvailableInWorkers}}</p>
<h2 id="プロパティ">プロパティ</h2>
<dl>
<dt>{{domxref("PerformanceEntry.name")}} {{readonlyInline}}</dt>
<dd>{{domxref("PerformanceEntry.entryType")}} プロパティによって返される値をさらに指定する値。両方の値はサブタイプによって異なります。有効な値についてはプロパティページを参照してください。</dd>
<dt>{{domxref("PerformanceEntry.entryType")}} {{readonlyInline}}</dt>
<dd>たとえば、"<code>mark</code>" などのパフォーマンスメトリックの種類を表す {{domxref("DOMString")}}。有効な値についてはプロパティページを参照してください。</dd>
<dt>{{domxref("PerformanceEntry.startTime")}} {{readonlyInline}}</dt>
<dd>パフォーマンスメトリックの開始時間を表す {{domxref("DOMHighResTimeStamp")}}。</dd>
<dt>{{domxref("PerformanceEntry.duration")}} {{readonlyInline}}</dt>
<dd>パフォーマンスイベントの期間の時間値を表す {{domxref("DOMHighResTimeStamp")}}。</dd>
</dl>
<h2 id="メソッド">メソッド</h2>
<dl>
<dt>{{domxref("PerformanceEntry.toJSON","PerformanceEntry.toJSON()")}}</dt>
<dd><code>PerformanceEntry</code> オブジェクトの JSON リプリゼンテーションを返します。</dd>
</dl>
<h2 id="例">例</h2>
<p>次の例では、すべての <code>PerformanceEntry</code> プロパティを調べて、ブラウザがそれらをサポートしているかどうかを確認し、サポートしている場合はそれらの値をコンソールに書き込みます。</p>
<pre class="brush: js">function print_PerformanceEntries() {
// getEntries() を使用してすべてのパフォーマンスエントリのリストを取得します。
var p = performance.getEntries();
for (var i=0; i < p.length; i++) {
console.log("PerformanceEntry[" + i + "]");
print_PerformanceEntry(p[i]);
}
}
function print_PerformanceEntry(perfEntry) {
var properties = ["name",
"entryType",
"startTime",
"duration"];
for (var i=0; i < properties.length; i++) {
// それぞれのプロパティをチェックします。
var supported = properties[i] in perfEntry;
if (supported) {
var value = perfEntry[properties[i]];
console.log("... " + properties[i] + " = " + value);
} else {
console.log("... " + properties[i] + " is NOT supported");
}
}
}
</pre>
<h2 id="仕様">仕様</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">仕様書</th>
<th scope="col">ステータス</th>
<th scope="col">コメント</th>
</tr>
<tr>
<td>{{SpecName('Resource Timing 3')}}</td>
<td>{{Spec2('Resource Timing 3')}}</td>
<td> </td>
</tr>
<tr>
<td>{{SpecName('Resource Timing 2')}}</td>
<td>{{Spec2('Resource Timing 2')}}</td>
<td> </td>
</tr>
<tr>
<td>{{SpecName('Resource Timing')}}</td>
<td>{{Spec2('Resource Timing')}}</td>
<td>{{domxref("PerformanceResourceTiming")}} インターフェイスと <code>entryType</code> の <code>resource</code> 値を追加します。</td>
</tr>
<tr>
<td>{{SpecName('Navigation Timing Level 2')}}</td>
<td>{{Spec2('Navigation Timing Level 2')}}</td>
<td> </td>
</tr>
<tr>
<td>{{SpecName('Navigation Timing')}}</td>
<td>{{Spec2('Navigation Timing')}}</td>
<td>{{domxref("PerformanceNavigationTiming")}} インターフェイスと <code>entryType</code> の <code>navigation</code> 値を追加します。</td>
</tr>
<tr>
<td>{{SpecName('User Timing Level 2')}}</td>
<td>{{Spec2('User Timing Level 2')}}</td>
<td> </td>
</tr>
<tr>
<td>{{SpecName('User Timing')}}</td>
<td>{{Spec2('User Timing')}}</td>
<td><code>entryType</code> の <code>mark</code> および <code>measure</code> の値と同様に、{{domxref("PerformanceMark")}} および {{domxref("PerformanceMeasure")}} インターフェイスを追加します。</td>
</tr>
<tr>
<td>{{SpecName('Frame Timing')}}</td>
<td>{{Spec2('Frame Timing')}}</td>
<td>{{domxref('PerformanceFrameTiming')}} インターフェイスと <code>entryType</code> の <code>frame</code> 値を追加します。</td>
</tr>
<tr>
<td>{{SpecName('Performance Timeline Level 2', '#dom-performanceentry', 'PerformanceEntry')}}</td>
<td>{{Spec2('Performance Timeline Level 2')}}</td>
<td><code>toJSON()</code> シリアライザメソッドを追加しました。</td>
</tr>
<tr>
<td>{{SpecName('Performance Timeline', '#dom-performanceentry', 'PerformanceEntry')}}</td>
<td>{{Spec2('Performance Timeline')}}</td>
<td>初期定義</td>
</tr>
</tbody>
</table>
<h2 id="ブラウザの互換性">ブラウザの互換性</h2>
<div>
<p>{{Compat("api.PerformanceEntry")}}</p>
</div>
|