aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/api/performanceentry
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:40:17 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:40:17 -0500
commit33058f2b292b3a581333bdfb21b8f671898c5060 (patch)
tree51c3e392513ec574331b2d3f85c394445ea803c6 /files/zh-cn/web/api/performanceentry
parent8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff)
downloadtranslated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.gz
translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.bz2
translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.zip
initial commit
Diffstat (limited to 'files/zh-cn/web/api/performanceentry')
-rw-r--r--files/zh-cn/web/api/performanceentry/duration/index.html111
-rw-r--r--files/zh-cn/web/api/performanceentry/entrytype/index.html128
-rw-r--r--files/zh-cn/web/api/performanceentry/index.html101
-rw-r--r--files/zh-cn/web/api/performanceentry/name/index.html178
-rw-r--r--files/zh-cn/web/api/performanceentry/tojson/index.html105
5 files changed, 623 insertions, 0 deletions
diff --git a/files/zh-cn/web/api/performanceentry/duration/index.html b/files/zh-cn/web/api/performanceentry/duration/index.html
new file mode 100644
index 0000000000..827c60d7e5
--- /dev/null
+++ b/files/zh-cn/web/api/performanceentry/duration/index.html
@@ -0,0 +1,111 @@
+---
+title: PerformanceEntry.duration
+slug: Web/API/PerformanceEntry/duration
+translation_of: Web/API/PerformanceEntry/duration
+---
+<div>{{APIRef("Performance Timeline API")}}</div>
+
+<p>The <strong><code>duration</code></strong> property returns a {{domxref("DOMHighResTimeStamp","timestamp")}} that is the duration of the {{domxref("PerformanceEntry","performance entry")}}.</p>
+
+<p>The value returned by this property depends on the performance entry's {{domxref("PerformanceEntry.entryType","type")}}:</p>
+
+<ul>
+ <li>"<code>frame</code>" - returns a {{domxref("DOMHighResTimeStamp","timestamp")}} indicating the difference between the <code>startTime</code>s of two successive frames.</li>
+ <li>"<code>mark</code>" - returns "<code>0</code>" (a mark has no duration).</li>
+ <li>"<code>measure</code>" - returns the {{domxref("DOMHighResTimeStamp","timestamp")}} that is the duration of the measure.</li>
+ <li>"<code>navigation</code>" - returns the {{domxref("DOMHighResTimeStamp","timestamp")}} that is the difference between the {{domxref("PerformanceEntry.loadEventEnd")}} and {{domxref("PerformanceEntry.startTime")}} properties, respectively.例如: entry.entryType "navigation",entry.duration 3611.26, entry.loadEventEnd 3611.2672285754975, entry.startTime 0;</li>
+ <li>"<code>resource</code>" - 返回 resource 的{{domxref("PerformanceEntry.responseEnd","responseEnd")}} {{domxref("DOMHighResTimeStamp","timestamp")}} 和  {{domxref("PerformanceEntry.startTime","startTime")}} {{domxref("DOMHighResTimeStamp","timestamp")}}的时间差. 例如: entry.entryType "resource",entry.duration 901.1400000000001, entry.responseEnd 2527.82, entry.startTime 1626.68, 2527.82 - 1626.68 == 901.1400000000001;</li>
+</ul>
+
+<p>This property is {{readonlyInline}}.</p>
+
+<h2 id="Syntax" name="Syntax">Syntax</h2>
+
+<pre class="syntaxbox"><em>entry</em>.duration;</pre>
+
+<h3 id="Return_Value" name="Return_Value">Return value</h3>
+
+<p>A {{domxref("DOMHighResTimeStamp")}} representing the duration of the {{domxref("PerformanceEntry","performance entry")}}. If the duration concept doesn't apply for a particular performance metric, the browser may choose to return a duration of 0.</p>
+
+<p class="note">Note: if the performance entry has an {{domxref("PerformanceEntry.entryType","entryType")}} of "<code>resource</code>" (i.e. the entry is a {{domxref("PerformanceResourceTiming")}} object), this property returns the difference between the {{domxref("PerformanceEntry.responseEnd")}} and {{domxref("PerformanceEntry.startTime")}} {{domxref("DOMHighResTimeStamp","timestamps")}}.</p>
+
+<h2 id="Example">Example</h2>
+
+<p>The following example shows the use of the <code>duration</code> property.</p>
+
+<pre class="brush: js">function run_PerformanceEntry() {
+ log("PerformanceEntry support ...");
+
+ if (performance.mark === undefined) {
+ log("... performance.mark Not supported");
+ return;
+ }
+
+ // Create some performance entries via the mark() method
+ performance.mark("Begin");
+ do_work(50000);
+ performance.mark("End");
+
+ // Use getEntries() to iterate through the each entry
+ var p = performance.getEntries();
+ for (var i=0; i &lt; p.length; i++) {
+ log("Entry[" + i + "]");
+ check_PerformanceEntry(p[i]);
+ }
+}
+function check_PerformanceEntry(obj) {
+ var properties = ["name", "entryType", "startTime", "duration"];
+ var methods = ["toJSON"];
+
+ for (var i=0; i &lt; properties.length; i++) {
+ // check each property
+ var supported = properties[i] in obj;
+ if (supported)
+ log("..." + properties[i] + " = " + obj[properties[i]]);
+ else
+ log("..." + properties[i] + " = Not supported");
+ }
+ for (var i=0; i &lt; methods.length; i++) {
+ // check each method
+ var supported = typeof obj[methods[i]] == "function";
+ if (supported) {
+ var js = obj[methods[i]]();
+ log("..." + methods[i] + "() = " + JSON.stringify(js));
+ } else {
+ log("..." + methods[i] + " = Not supported");
+ }
+ }
+}
+</pre>
+
+<h2 id="Specifications">Specifications</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-performanceentry-duration', 'duration')}}</td>
+ <td>{{Spec2('Performance Timeline Level 2')}}</td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td>{{SpecName('Performance Timeline', '#dom-performanceentry-duration', 'duration')}}</td>
+ <td>{{Spec2('Performance Timeline')}}</td>
+ <td>Initial definition.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility">Browser compatibility</h2>
+
+<div>
+<div>
+
+
+<p>{{Compat("api.PerformanceEntry.duration")}}</p>
+</div>
+</div>
diff --git a/files/zh-cn/web/api/performanceentry/entrytype/index.html b/files/zh-cn/web/api/performanceentry/entrytype/index.html
new file mode 100644
index 0000000000..32cdcd696d
--- /dev/null
+++ b/files/zh-cn/web/api/performanceentry/entrytype/index.html
@@ -0,0 +1,128 @@
+---
+title: PerformanceEntry.entryType
+slug: Web/API/PerformanceEntry/entryType
+translation_of: Web/API/PerformanceEntry/entryType
+---
+<div> <br>
+  {{APIRef("Performance Timeline API")}}</div>
+
+<p><span class="seoSummary">The <strong><code>entryType</code></strong>  返回一个代表performance metric 类型的{{domxref("DOMString")}} , 例如被performance.mark("begin") 所创建的entry 的entryType 就是 "<code>mark</code>". 此属性只读.</span></p>
+
+<h2 id="Syntax" name="Syntax">语法</h2>
+
+<pre class="syntaxbox">var <em>type</em> = <em>entry</em>.entryType;</pre>
+
+<h3 id="Return_Value" name="Return_Value">返回值</h3>
+
+<p>返回值取决于  <code>PerformanceEntry</code> 对象的subtype, entryType的取值会影响{{domxref('PerformanceEntry.name')}} 属性, 具体如下表所示. </p>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Value</th>
+ <th scope="col">Subtype</th>
+ <th scope="col">Type of name property</th>
+ <th scope="col">Description of name property</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><code>frame</code>, <code>navigation</code></td>
+ <td>{{domxref('PerformanceFrameTiming')}}, {{domxref('PerformanceNavigationTiming')}}</td>
+ <td>{{domxref("URL")}}</td>
+ <td>The document's address.</td>
+ </tr>
+ <tr>
+ <td><code>resource</code></td>
+ <td>{{domxref('PerformanceResourceTiming')}}</td>
+ <td>{{domxref("URL")}}</td>
+ <td>The resolved URL of the requested resource. This value doesn't change even if the request is redirected.</td>
+ </tr>
+ <tr>
+ <td><code>mark</code></td>
+ <td>{{domxref('PerformanceMark')}}</td>
+ <td>{{domxref("DOMString")}}</td>
+ <td>The name used when the mark was created by calling {{domxref("Performance.mark","performance.mark()")}}.</td>
+ </tr>
+ <tr>
+ <td><code>measure</code></td>
+ <td>{{domxref('PerformanceMeasure')}}</td>
+ <td>{{domxref("DOMString")}}</td>
+ <td>name used when the measure was created by calling {{domxref("Performance.measure","performance.measure()")}}.</td>
+ </tr>
+ <tr>
+ <td><code>paint</code></td>
+ <td>{{domxref('PerformancePaintTiming')}}</td>
+ <td>{{domxref("DOMString")}}</td>
+ <td>Either <code>'first-paint'</code> or <code>'first-contentful-paint'</code>.</td>
+ </tr>
+ </tbody>
+</table>
+
+<p> </p>
+
+<h2 id="范例">范例</h2>
+
+<p>下面的代码说明了  <code>entryType</code> 属性的用法.</p>
+
+<pre class="brush: js">function run_PerformanceEntry() {
+
+ // check for feature support before continuing
+ if (performance.mark === undefined) {
+ console.log("performance.mark not supported");
+ return;
+ }
+
+ // Create a performance entry named "begin" via the mark() method
+ performance.mark("begin");
+
+ // Check the entryType of all the "begin" entries
+ var entriesNamedBegin = performance.getEntriesByName("begin");
+ //entriesNamedBegin
+ //    Array [ PerformanceMark ]
+ //entriesNamedBegin[0]
+ //    PerformanceMark { name: "begin", entryType: "mark", startTime: 94661370.14, duration: 0 }
+ //entriesNamedBegin[0].entryType
+ //    "mark"
+ //entriesNamedBegin[0].name
+ //    "begin"
+
+ for (var i=0; i &lt; entriesNamedBegin.length; i++) {
+ var typeOfEntry = entriesNamedBegin[i].entryType;
+ console.log("Entry is type: " + typeOfEntry);
+ }
+
+}
+</pre>
+
+<h2 id="Specifications">Specifications</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-performanceentry-entrytype', 'entryType')}}</td>
+ <td>{{Spec2('Performance Timeline Level 2')}}</td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td>{{SpecName('Performance Timeline', '#dom-performanceentry-entrytype', 'entryType')}}</td>
+ <td>{{Spec2('Performance Timeline')}}</td>
+ <td>Initial definition.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility">Browser compatibility</h2>
+
+<div>
+<div>
+
+
+<p>{{Compat("api.PerformanceEntry.entryType")}}</p>
+</div>
+</div>
diff --git a/files/zh-cn/web/api/performanceentry/index.html b/files/zh-cn/web/api/performanceentry/index.html
new file mode 100644
index 0000000000..c0fde6ee9d
--- /dev/null
+++ b/files/zh-cn/web/api/performanceentry/index.html
@@ -0,0 +1,101 @@
+---
+title: PerformanceEntry
+slug: Web/API/PerformanceEntry
+tags:
+ - API
+ - Interface
+ - NeedsTranslation
+ - Reference
+ - TopicStub
+ - Web Performance
+translation_of: Web/API/PerformanceEntry
+---
+<div>{{APIRef("Performance Timeline API")}}</div>
+
+<p><strong><code>PerformanceEntry</code></strong> 对象代表了 performance 时间列表中的单个 metric 数据. 每一个 <em>performance entry 都可以在应用运行过程中通过手动构建 </em><em>{{domxref("PerformanceMark","mark")}}</em> 或者 <em>{{domxref("PerformanceMeasure","measure")}}</em> (例如调用 {{domxref("Performance.mark","mark()")}} 方法) 生成. 此外, Performance entries 在资源加载的时候,也会被动生成(例如图片、script、css等资源加载)</p>
+
+<p class="note">Note: Performance 对象暴露给了 {{domxref("Window")}} 和 {{domxref("Worker")}}. 同时该对象扩展了几个其他对象的属性,包括 {{domxref("PerformanceMark")}}, {{domxref("PerformanceMeasure")}}, {{domxref("PerformanceFrameTiming")}}, {{domxref("PerformanceNavigationTiming")}} 以及 {{domxref("PerformanceResourceTiming")}}.</p>
+
+<h2 id="Properties">Properties</h2>
+
+<dl>
+ <dt>{{domxref("PerformanceEntry.name")}} {{readonlyInline}}</dt>
+ <dd>{{domxref("DOMString")}} 该 performance entry 的名字</dd>
+ <dt>{{domxref("PerformanceEntry.entryType")}} {{readonlyInline}}</dt>
+ <dd>{{domxref("DOMString")}} 代表所上报的 performance metric 的 entryType 类型,例如 "mark". 可以通过 {{domxref("PerformanceEntry.entryType","entryType")}} 查阅完整的 entryType type 类型.</dd>
+ <dt>{{domxref("PerformanceEntry.startTime")}} {{readonlyInline}}</dt>
+ <dd> {{domxref("DOMHighResTimeStamp")}}  此为 metric 上报时的时间</dd>
+ <dt>{{domxref("PerformanceEntry.duration")}} {{readonlyInline}}</dt>
+ <dd>{{domxref("DOMHighResTimeStamp")}} 该事件的耗时</dd>
+</dl>
+
+<h2 id="Methods">Methods</h2>
+
+<dl>
+ <dt>{{domxref("PerformanceEntry.toJSON","PerformanceEntry.toJSON()")}}</dt>
+ <dd>返回 <code>PerformanceEntry</code> 对象的 JSON 格式数据</dd>
+ <dd> </dd>
+</dl>
+
+<h2 id="Example">Example</h2>
+
+<p>以下例子检查了当前浏览器所支持的所有 <code>PerformanceEntry</code> 属性,每个属性的检查结果都会通过 console 打印出来</p>
+
+<pre class="brush: js">function print_PerformanceEntries() {
+ // Use getEntries() to get a list of all performance entries
+ var p = performance.getEntries();
+ for (var i=0; i &lt; 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 &lt; properties.length; i++) {
+ // check each property
+ var supported = properties[i] in perfEntry;
+ if (supported) {
+ var value = perfEntry[properties[i]];
+ console.log("... " + properties[i] + " = " + value);
+ } else {
+ console.log("... " + properties[i] + " = NOT supported");
+ }
+ }
+}
+</pre>
+
+<h2 id="Specifications">Specifications</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-performanceentry', 'PerformanceEntry')}}</td>
+ <td>{{Spec2('Performance Timeline Level 2')}}</td>
+ <td>Added <code>toJSON()</code> serializer method.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('Performance Timeline', '#dom-performanceentry', 'PerformanceEntry')}}</td>
+ <td>{{Spec2('Performance Timeline')}}</td>
+ <td>Initial definition.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility">Browser compatibility</h2>
+
+<div>
+<div>
+
+
+<p>{{Compat("api.PerformanceEntry")}}</p>
+</div>
+</div>
diff --git a/files/zh-cn/web/api/performanceentry/name/index.html b/files/zh-cn/web/api/performanceentry/name/index.html
new file mode 100644
index 0000000000..a12b1c4c67
--- /dev/null
+++ b/files/zh-cn/web/api/performanceentry/name/index.html
@@ -0,0 +1,178 @@
+---
+title: PerformanceEntry.name
+slug: Web/API/PerformanceEntry/name
+translation_of: Web/API/PerformanceEntry/name
+---
+<div>{{APIRef("Performance Timeline API")}}</div>
+
+<p><span class="seoSummary"><strong><code>name 是</code></strong> {{domxref("PerformanceEntry")}} 接口的属性,此属性的返回值是 {{domxref("PerformanceEntry.entryType")}} 的返回值的一个补充,例如entry.entryType="navigation",entry.name="document". 这是一个只读属性.</span></p>
+
+<h2 id="Syntax" name="Syntax">Syntax</h2>
+
+<pre class="syntaxbox">var<em> name</em> = <em>entry</em>.name;
+</pre>
+
+<h3 id="Return_Value" name="Return_Value">返回值</h3>
+
+<p>返回值取决于<code>PerformanceEntry</code> 对象的 subtype和{{domxref("PerformanceEntry.entryType")}}的值, 如下表所示.</p>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Value</th>
+ <th scope="col">Subtype</th>
+ <th scope="col">entryType values</th>
+ <th scope="col">Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{domxref("URL")}}</td>
+ <td>{{domxref('PerformanceFrameTiming')}}, {{domxref('PerformanceNavigationTiming')}}</td>
+ <td><code>frame</code>, <code>navigation</code></td>
+ <td>The document's address.</td>
+ </tr>
+ <tr>
+ <td>{{domxref("URL")}}</td>
+ <td>{{domxref('PerformanceResourceTiming')}}</td>
+ <td><code>resource</code></td>
+ <td>The resolved URL of the requested resource. This value doesn't change even if the request is redirected.</td>
+ </tr>
+ <tr>
+ <td>{{domxref("DOMString")}}</td>
+ <td>{{domxref('PerformanceMark')}}</td>
+ <td><code>mark</code></td>
+ <td>The name used when the mark was created by calling {{domxref("Performance.mark","performance.mark()")}}.</td>
+ </tr>
+ <tr>
+ <td>{{domxref("DOMString")}}</td>
+ <td>{{domxref('PerformanceMeasure')}}</td>
+ <td><code>measure</code></td>
+ <td>name used when the measure was created by calling {{domxref("Performance.measure","performance.measure()")}}.</td>
+ </tr>
+ <tr>
+ <td>{{domxref("DOMString")}}</td>
+ <td>{{domxref('PerformancePaintTiming')}}</td>
+ <td><code>paint</code></td>
+ <td>Either <code>'first-paint'</code> or <code>'first-contentful-paint'</code>.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="用例">用例</h2>
+
+<p>下面的例子是 <code>name</code> 属性的用法.</p>
+
+<pre class="brush: js">function run_PerformanceEntry() {
+ log("PerformanceEntry support ...");
+
+ if (performance.mark === undefined) {
+ log("... performance.mark Not supported");
+ return;
+ }
+
+ // Create some performance entries via the mark() method
+ performance.mark("Begin");
+ do_work(50000);
+ performance.mark("End");
+
+ // Use getEntries() to iterate through the each entry
+ var p = performance.getEntries();
+ for (var i=0; i &lt; p.length; i++) {
+ log("Entry[" + i + "]");
+ check_PerformanceEntry(p[i]);
+ }
+}
+ //
+ //例如上面p中一个entry p[0] = {
+ //  "name": "document",
+ //  "entryType": "navigation",
+ //  "startTime": 0,
+ //  "duration": 3611.26,
+ //  "initiatorType": "navigation",
+ //  "nextHopProtocol": "http/1.1",
+ //  "workerStart": 0,
+ //  "redirectStart": 0,
+ //  "redirectEnd": 0,
+ //  "fetchStart": 0.32,
+ //  "domainLookupStart": 17.64,
+ //  "domainLookupEnd": 17.78,
+ //  "connectStart": 17.86,
+ //  "connectEnd": 18.1,
+ //  "secureConnectionStart": 0,
+ //  "requestStart": 18.3,
+ //  "responseStart": 294.06,
+ //  "responseEnd": 1610.3600000000001,
+ //  "transferSize": 97683,
+ //  "encodedBodySize": 97112,
+ //  "decodedBodySize": 97112,
+ //  "unloadEventStart": 1614.8372840721554,
+ //  "unloadEventEnd": 1619.1600105887128,
+ //  "domInteractive": 3110.767514889843,
+ //  "domContentLoadedEventStart": 3125.859851800787,
+ //  "domContentLoadedEventEnd": 3438.5779820633365,
+ //  "domComplete": 3609.999662153349,
+ //  "loadEventStart": 3610.017623620869,
+ //  "loadEventEnd": 3611.2672285754975,
+ //  "type": "reload",
+ //  "redirectCount": 0
+ //}
+
+ //下面的函数check_PerformanceEntry的参数obj就是上面的p[0]
+ //
+function check_PerformanceEntry(obj) {
+ var properties = ["name", "entryType", "startTime", "duration"];
+ var methods = ["toJSON"];
+
+ for (var i=0; i &lt; properties.length; i++) {
+ // check each property
+ var supported = properties[i] in obj;
+ if (supported)
+ log("..." + properties[i] + " = " + obj[properties[i]]);
+ else
+ log("..." + properties[i] + " = Not supported");
+ }
+ for (var i=0; i &lt; methods.length; i++) {
+ // check each method
+ var supported = typeof obj[methods[i]] == "function";
+ if (supported) {
+ var js = obj[methods[i]]();
+ log("..." + methods[i] + "() = " + JSON.stringify(js));
+ } else {
+ log("..." + methods[i] + " = Not supported");
+ }
+ }
+}
+</pre>
+
+<h2 id="Specifications">Specifications</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-performanceentry-name', 'name')}}</td>
+ <td>{{Spec2('Performance Timeline Level 2')}}</td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td>{{SpecName('Performance Timeline', '#dom-performanceentry-name', 'name')}}</td>
+ <td>{{Spec2('Performance Timeline')}}</td>
+ <td>Initial definition.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility">Browser compatibility</h2>
+
+<div>
+<div>
+
+
+<p>{{Compat("api.PerformanceEntry.name")}}</p>
+</div>
+</div>
diff --git a/files/zh-cn/web/api/performanceentry/tojson/index.html b/files/zh-cn/web/api/performanceentry/tojson/index.html
new file mode 100644
index 0000000000..0012bc60f7
--- /dev/null
+++ b/files/zh-cn/web/api/performanceentry/tojson/index.html
@@ -0,0 +1,105 @@
+---
+title: PerformanceEntry.toJSON()
+slug: Web/API/PerformanceEntry/toJSON
+tags:
+ - PerformanceEntry.toJSON()
+translation_of: Web/API/PerformanceEntry/toJSON
+---
+<div>{{APIRef("Performance Timeline API")}}</div>
+
+<p><strong><code>toJSON()</code></strong> 方法是一个串行器( <em>serializer </em>); 它返回{{domxref("PerformanceEntry","performance entry")}}对象的一个JSON表示形式。</p>
+
+<h2 id="Syntax">Syntax</h2>
+
+<pre class="syntaxbox">const json = perfEntry.toJSON();
+</pre>
+
+<h3 id="Arguments">Arguments</h3>
+
+<dl>
+ <dt>None</dt>
+ <dd> </dd>
+</dl>
+
+<h3 id="Return_value">Return value</h3>
+
+<dl>
+ <dt>json</dt>
+ <dd>A JSON object that is the serialization of the {{domxref("PerformanceEntry")}} object.</dd>
+</dl>
+
+<h2 id="Example">Example</h2>
+
+<p>The following example shows the use of the <code>toJSON()</code> method.</p>
+
+<pre class="brush: js">function run_PerformanceEntry() {
+ log("PerformanceEntry support ...");
+
+ if (performance.mark === undefined) {
+ log("... performance.mark Not supported");
+ return;
+ }
+
+ // Create some performance entries via the mark() method
+ performance.mark("Begin");
+ do_work(50000);
+ performance.mark("End");
+
+ // Use getEntries() to iterate through the each entry
+ var p = performance.getEntries();
+ for (var i=0; i &lt; p.length; i++) {
+ log("Entry[" + i + "]");
+ check_PerformanceEntry(p[i]);
+ }
+}
+function check_PerformanceEntry(obj) {
+ var properties = ["name", "entryType", "startTime", "duration"];
+ var methods = ["toJSON"];
+
+ for (var i=0; i &lt; properties.length; i++) {
+ // check each property
+ var supported = properties[i] in obj;
+ if (supported)
+ log("..." + properties[i] + " = " + obj[properties[i]]);
+ else
+ log("..." + properties[i] + " = Not supported");
+ }
+ for (var i=0; i &lt; methods.length; i++) {
+ // check each method
+ var supported = typeof obj[methods[i]] == "function";
+ if (supported) {
+ var js = obj[methods[i]]();
+ log("..." + methods[i] + "() = " + JSON.stringify(js));
+ } else {
+ log("..." + methods[i] + " = Not supported");
+ }
+ }
+}
+</pre>
+
+<h2 id="Specifications">Specifications</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-performanceentry', 'toJSON')}}</td>
+ <td>{{Spec2('Performance Timeline Level 2')}}</td>
+ <td>Initial definition of <code>toJSON()</code> method.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility">Browser compatibility</h2>
+
+<div>
+<div>
+
+
+<p>{{Compat("api.PerformanceEntry.toJSON")}}</p>
+</div>
+</div>