{"id":440,"date":"2022-07-06T08:50:42","date_gmt":"2022-07-06T00:50:42","guid":{"rendered":"http:\/\/gjweb.top\/?p=440"},"modified":"2022-07-06T08:50:43","modified_gmt":"2022-07-06T00:50:43","slug":"%e6%b5%85%e8%b0%88%e5%89%8d%e7%ab%af%e7%9b%91%e6%8e%a7%e4%ba%8c","status":"publish","type":"post","link":"https:\/\/gjweb.top\/?p=440","title":{"rendered":"\u6d45\u8c08\u524d\u7aef\u76d1\u63a7(\u4e8c)"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"\u9875\u9762\u52a0\u8f7d\u65f6\u95f4\">\u9875\u9762\u52a0\u8f7d\u65f6\u95f4<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"\u9636\u6bb5\u8ba1\u7b97\u8868\">\u9636\u6bb5\u8ba1\u7b97\u8868<\/h3>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>\u5b57\u6bb5<\/th><th>\u63cf\u8ff0<\/th><th>\u8ba1\u7b97\u65b9\u5f0f<\/th><th>\u610f\u4e49<\/th><\/tr><\/thead><tbody><tr><td>unload<\/td><td>\u524d\u4e00\u4e2a\u9875\u9762\u5378\u8f7d\u8017\u65f6<\/td><td>unloadEventEnd &#8211; unloadEventStart<\/td><td>&#8211;<\/td><\/tr><tr><td>redirect<\/td><td>\u91cd\u5b9a\u5411\u8017\u65f6<\/td><td>redirectEnd &#8211; redirectStart<\/td><td>\u91cd\u5b9a\u5411\u7684\u65f6\u95f4<\/td><\/tr><tr><td>appCache<\/td><td>\u7f13\u5b58\u8017\u65f6<\/td><td>domainLookupStart &#8211; fetchStart<\/td><td>\u8bfb\u53d6\u7f13\u5b58\u7684\u65f6\u95f4<\/td><\/tr><tr><td>dns<\/td><td>DNS\u89e3\u6790\u8017\u65f6<\/td><td>domainLookupEnd &#8211; domainLookupStart<\/td><td>\u53ef\u89c2\u5bdf\u57df\u540d\u89e3\u6790\u670d\u52a1\u662f\u5426\u6b63\u5e38<\/td><\/tr><tr><td>tcp<\/td><td>TCP\u8fde\u63a5\u8017\u65f6<\/td><td>connectEnd &#8211; connectStart<\/td><td>\u5efa\u7acb\u8fde\u63a5\u7684\u8017\u65f6<\/td><\/tr><tr><td>ssl<\/td><td>\u5b89\u5168\u8fde\u63a5\u8017\u65f6<\/td><td>connectEnd &#8211; secureConnectiuonstart<\/td><td>\u53cd\u6620\u6570\u636e\u5b89\u5168\u8fde\u63a5\u5efa\u7acb\u8017\u65f6<\/td><\/tr><tr><td>TTFB<\/td><td>\u7f51\u7edc\u8bf7\u6c42\u8017\u65f6<\/td><td>responseStart &#8211; requestStart<\/td><td>TTFB\u662f\u53d1\u51fa\u9875\u9762\u8bf7\u6c42\u5230\u63a5\u6536\u6570\u636e\u7b2c\u4e00\u4e2a\u5b57\u8282\u7684\u65f6\u95f4(ms)<\/td><\/tr><tr><td>response<\/td><td>\u54cd\u5e94\u6570\u636e\u4f20\u8f93\u8017\u65f6`<\/td><td>responseEnd &#8211; resoibseStart<\/td><td>\u89c2\u5bdf\u7f51\u7edc\u662f\u5426\u6b63\u5e38<\/td><\/tr><tr><td>dom<\/td><td>DOM\u89e3\u6790\u8017\u65f6<\/td><td>domInteractive &#8211; responseEnd<\/td><td>\u89c2\u5bdfDOM\u7ed3\u6784\u662f\u5426\u5408\u7406,\u662f\u5426\u6709JS\u963b\u585e\u9875\u9762\u89e3\u6790<\/td><\/tr><tr><td>dcl<\/td><td>DOMDOntentLoaded\u4e8b\u4ef6\u8017\u65f6<\/td><td>domContentLoadedEventEnd &#8211; domContentLoadedEventStart<\/td><td>\u5f53HTML\u6587\u6863\u5b8c\u6210\u52a0\u8f7d\u548c\u89e3\u6790\u4e4b\u540e,DOMDOntentLoaded\u4e8b\u4ef6\u7b49\u5f85\u6837\u5f0f\u8868\\\u56fe\u50cf\u5b8c\u6210\u52a0\u8f7d\u7684\u65f6\u957f<\/td><\/tr><tr><td>resources<\/td><td>\u8d44\u6e90\u52a0\u8f7d\u8017\u65f6<\/td><td>domComplete &#8211; domContentLoadedEventEnd<\/td><td>\u53ef\u89c2\u5bdf\u6587\u6863\u6d41\u662f\u5426\u8fc7\u5927<\/td><\/tr><tr><td>domReady<\/td><td>DOM\u9636\u6bb5\u6e32\u67d3\u8017\u65f6<\/td><td>rdomContentLoadedEventEnd &#8211; fetchStart<\/td><td>DOM\u548c\u9875\u9762\u8d44\u6e90\u52a0\u8f7d\u5b8c\u6210\u65f6\u95f4,\u4f1a\u89e6\u53d1 domDContentLoaded \u4e8b\u4ef6<\/td><\/tr><tr><td>\u9996\u6b21\u6e32\u67d3\u8017\u65f6<\/td><td>&#8211;<\/td><td>responseEnd &#8211; fetchStart<\/td><td>\u52a0\u8f7d\u6587\u6863\u5230\u770b\u5230\u7b2c\u4e00\u9488\u975e\u7a7a\u56fe\u50cf\u7684\u65f6\u95f4,(\u767d\u5c4f\u65f6\u95f4)<\/td><\/tr><tr><td>\u9996\u6b21\u53ef\u4ea4\u4e92\u65f6\u95f4<\/td><td>&#8211;<\/td><td>domInteractive &#8211; fetchStart<\/td><td>DOM\u6811\u89e3\u6790\u5b8c\u6210\u65f6\u95f4,\u6b64\u65f6 document.readyState \u4e3a interactive<\/td><\/tr><tr><td>\u9996\u5305\u65f6\u95f4\u8017\u65f6<\/td><td>&#8211;<\/td><td>responseSyary &#8211; domainLookupStart<\/td><td>DNS\u89e3\u6790\u5230\u54cd\u5e94\u8fd4\u56de\u7ed9\u6d4f\u89c8\u5668\u7684\u7b2c\u4e00\u4e2a\u5b57\u8282<\/td><\/tr><tr><td>\u9875\u9762\u5b8c\u5168\u52a0\u8f7d\u65f6\u95f4<\/td><td>&#8211;<\/td><td>loadEventStart &#8211; fetchStart<\/td><td>&#8211;<\/td><\/tr><tr><td>onLoad<\/td><td>onLoad\u4e8b\u4ef6\u8017\u65f6<\/td><td>loadEventEnd &#8211; loadEventSatrt<\/td><td>&#8211;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"\u5b9e\u73b0\">\u5b9e\u73b0<\/h3>\n\n\n\n<p>\u503c\u5f97\u6ce8\u610f\u7684\u662f performance.timing \u8fd9\u4e2a\u5c5e\u6027\u5728MDN\u4e0a\u6807\u8bc6\u4e3a\u5e9f\u5f03\u5c5e\u6027, \u63a8\u8350\u66ff\u6362\u5c5e\u6027PerformanceTiming<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>onload(function(){<br> &nbsp; &nbsp;var perfEntries = performance.getEntriesByType(\"navigation\");<br> &nbsp; &nbsp;setTimeout(()=&gt;{<br> &nbsp; &nbsp; &nbsp;const {<br> &nbsp; &nbsp; &nbsp; &nbsp;fetchStart,<br> &nbsp; &nbsp; &nbsp; &nbsp;connectStart,<br> &nbsp; &nbsp; &nbsp; &nbsp;connectEnd,<br> &nbsp; &nbsp; &nbsp; &nbsp;requestStart,<br> &nbsp; &nbsp; &nbsp; &nbsp;responseStart,<br> &nbsp; &nbsp; &nbsp; &nbsp;responseEnd,<br> &nbsp; &nbsp; &nbsp; &nbsp;domInteractive,<br> &nbsp; &nbsp; &nbsp; &nbsp;domContentLoadedEventStart,<br> &nbsp; &nbsp; &nbsp; &nbsp;domContentLoadedEventEnd,<br> &nbsp; &nbsp; &nbsp; &nbsp;loadEventStart<br> &nbsp; &nbsp;  } = perfEntries&#91;0];<br> &nbsp; &nbsp; &nbsp;<br> &nbsp; &nbsp; &nbsp;let log = {<br> &nbsp; &nbsp; &nbsp; &nbsp;kind:\"experience\",<br> &nbsp; &nbsp; &nbsp; &nbsp;type:'timing',<br> &nbsp; &nbsp; &nbsp; &nbsp;connectTime:connectStart -connectEnd , \/\/\u8fde\u63a5\u65f6\u95f4<br> &nbsp; &nbsp; &nbsp; &nbsp;ttfbTime:responseStart - requestStart, \/\/ \u9996\u5b57\u8282\u5230\u8fbe\u65f6\u95f4<br> &nbsp; &nbsp; &nbsp; &nbsp;responseTime:responseEnd - responseStart, \/\/ \u54cd\u5e94\u7684\u8bfb\u53d6\u65f6\u95f4<br> &nbsp; &nbsp; &nbsp; &nbsp;domContentLoadedTime:domContentLoadedEventEnd - domContentLoadedEventStart,\/\/ \u8d44\u6e90\u5168\u90e8\u52a0\u8f7d\u5b8c\u6210\u65f6\u95f4<br> &nbsp; &nbsp; &nbsp; &nbsp;timeToInteractive:domInteractive - fetchStart, \/\/ \u9996\u6b21\u53ef\u4ea4\u4e92\u65f6\u95f4<br> &nbsp; &nbsp; &nbsp; &nbsp;loadTime:loadEventStart - fetchStart, \/\/ \u5b8c\u6574\u7684\u52a0\u8f7d\u65f6\u95f4<br> &nbsp; &nbsp;  }<br> &nbsp; &nbsp; &nbsp;console.log(\"\u7528\u6237\u4f53\u9a8c\u76d1\u63a7\",log)<br> &nbsp;  },3000)<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"\u6027\u80fd\u6307\u6807\">\u6027\u80fd\u6307\u6807<\/h2>\n\n\n\n<figure class=\"wp-block-table is-style-stripes\"><table><thead><tr><th>\u5b57\u6bb5<\/th><th>\u63cf\u8ff0<\/th><th>\u5907\u6ce8<\/th><\/tr><\/thead><tbody><tr><td>FP<\/td><td>\u9996\u6b21\u7ed8\u5236<\/td><td>\u5305\u62ec\u81ea\u5b9a\u4e49\u80cc\u666f\uff0c\u8868\u793a\u7684\u9996\u6b21\u5c06\u50cf\u7d20\u7ed8\u5236\u5230\u5c4f\u5e55\u7684\u65f6\u95f4<\/td><\/tr><tr><td>FCP<\/td><td>\u9996\u6b21\u5185\u5bb9\u7ed8\u5236<\/td><td>\u7b2c\u4e00\u4e2aDOM\u6e32\u67d3\u5230\u5c4f\u5e55\u7684\u65f6\u95f4\uff08\u4e5f\u53ef\u4ee5\u4f5c\u4e3a\u767d\u5c4f\u65f6\u95f4\uff09<\/td><\/tr><tr><td>FMP<\/td><td>\u9996\u6b21\u6709\u610f\u4e49\u7ed8\u5236<\/td><td>\u9875\u9762\u6709\u610f\u4e49\u7684\u5185\u5bb9\u7ed8\u5236\u65f6\u95f4\uff08\u6d4f\u89c8\u5668\u4e0d\u77e5\u9053\u90a3\u4e2a\u5143\u7d20\u662f\u6709\u610f\u4e49\u7684\uff0c\u9700\u8981\u5728\u6307\u5b9a\u7684html\u4e2d\u52a0\u5165 elementtiming\u5c5e\u6027\uff0c\u503c\u53ef\u4ee5\u968f\u610f\u586b\u5199\uff09<\/td><\/tr><tr><td>LCP<\/td><td>\u6700\u5927\u5185\u5bb9\u6e32\u67d3<\/td><td>\u4ee3\u8868\u5728\u8bd5\u56fe\u4e2d\u6700\u5927\u7684\u5143\u7d20\u7684\u52a0\u8f7d\u65f6\u95f4<\/td><\/tr><tr><td>DCL<\/td><td>DOM\u52a0\u8f7d\u5b8c\u6210<\/td><td>HTML\u52a0\u8f7d\u89e3\u6790\u4e4b\u540e\uff0cDOMCIntentLoaded\u65f6\u95f4\u88ab\u89e6\u53d1\u7684\u65f6\u95f4\uff0c\u65e0\u9700\u7b49\u5f85\u6837\u5f0f\u8868\u3001\u56fe\u50cf\u7b49\u52a0\u8f7d<\/td><\/tr><tr><td>L<\/td><td>onLoad<\/td><td>\u5f53\u4f9d\u8d56\u7684\u8d44\u6e90\u5168\u90e8\u88ab\u52a0\u8f7d\u5b8c\u6bd5\u4e4b\u540e\u89e6\u53d1\u7684\u65f6\u95f4<\/td><\/tr><tr><td>TTI<\/td><td>\u53ef\u4ea4\u4e92\u65f6\u95f4<\/td><td>\u6807\u8bb0\u5e94\u7528\u53ca\u8fdb\u884c\u6e32\u67d3\u5e76\u53ef\u4ee5\u76f8\u5e94\u7528\u6237\u8f93\u5165\u7684\u65f6\u95f4<\/td><\/tr><tr><td>FID<\/td><td>\u9996\u6b21\u8f93\u5165\u5ef6\u8fdf<\/td><td>\u7528\u6237\u9996\u6b21\u548c\u9875\u9762\u4ea4\u4e92\u65f6\u9875\u9762\u7684\u54cd\u5e94\u65f6\u95f4\uff08\u53cd\u5c04\u5f27\u65f6\u95f4\uff09<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"\u5b9e\u73b0\">\u5b9e\u73b0<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>function timing(){<br> &nbsp; let FMP,LCP;<br> &nbsp;\/\/ \u6dfb\u52a0\u6027\u80fd\u6761\u76ee\u7684\u89c2\u5bdf\u8005<br> &nbsp;new PerformanceObserver((entryList,observer)=&gt;{<br> &nbsp; &nbsp;let perfEntries = entryList.getEntries();<br> &nbsp; &nbsp;FMP = perfEntries&#91;0];<br> &nbsp; &nbsp;observer.disconnect(); \/\/\u53d6\u6d88\u89c2\u5bdf<br>  }).observe({entryTypes:&#91;'element']}); \/\/\u89c2\u5bdf\u9875\u9762\u4e2d\u6709\u610f\u4e49\u7684\u5143\u7d20<br>\u200b<br> &nbsp;new PerformanceObserver((entryList,observer)=&gt;{<br> &nbsp; &nbsp;let perfEntries = entryList.getEntries();<br> &nbsp; &nbsp;LCP = perfEntries&#91;0];<br> &nbsp; &nbsp;observer.disconnect(); \/\/\u53d6\u6d88\u89c2\u5bdf<br>  }).observe({entryTypes:&#91;'largest-contentful-paint']}); \/\/ \u89c2\u5bdf\u9875\u9762\u6700\u5927\u6e32\u67d3\u5143\u7d20<br>\u200b<br> &nbsp;\/**TTI\u9996\u6b21\u5ef6\u8fdf OR FIO\u5904\u7406\u5ef6\u8fdf\u65f6\u95f4 *\/<br> &nbsp;new PerformanceObserver((entryList,observer)=&gt;{<br> &nbsp; &nbsp;let lastEvent = getLastEvent()<br> &nbsp; &nbsp;let firstInput = entryList.getEntries()&#91;0];<br> &nbsp; &nbsp;if(firstInput){<br> &nbsp; &nbsp; &nbsp;\/\/inputDelay(\u53cd\u5c04\u5f27\u65f6\u95f4) = processingStart(\u5f00\u59cb\u5904\u7406\u7684\u65f6\u95f4) - startTime(\u5f00\u70b9\u51fb\u7684\u65f6\u95f4) <br> &nbsp; &nbsp; &nbsp;let inputDelay = firstInput.processingStart - firstInput.startTime;<br> &nbsp; &nbsp; &nbsp;let duration = firstInput.duration; \/\/ \u5904\u7406\u7684\u8017\u65f6<br> &nbsp; &nbsp; &nbsp;if(inputDelay&gt;0 || duration&gt;0){<br> &nbsp; &nbsp; &nbsp; &nbsp;let log = {<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;kind:\"experience\", \/\/ \u7528\u6237\u4f53\u9a8c\u6307\u6807<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;type:\"firstInputDelay\", \/\/ \u9996\u6b21\u8f93\u5165\u5ef6\u8fdf<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;inputDelay:inputDelay, \/\/ \u5ef6\u8fdf\u7684\u65f6\u95f4<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;duration:duration, \/\/ \u5904\u7406\u7684\u65f6\u95f4<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;startTime:firstInput.startTime, \/\/ \u53cd\u5c04\u5f27\u65f6\u95f4<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;selector:lastEvent?getSelector(lastEvent.path || lastEvent.target) : \"\", \/\/ \u70b9\u51fb\u7684\u5143\u7d20<br> &nbsp; &nbsp; &nbsp;  }<br> &nbsp; &nbsp; &nbsp; &nbsp;console.log(\"\u9996\u6b21\u4ea4\u4e92\u65f6\u957f\",log)<br> &nbsp; &nbsp;  }<br> &nbsp;  }<br> &nbsp; &nbsp;observer.disconnect(); \/\/\u53d6\u6d88\u89c2\u5bdf<br>  }).observe({type:\"first-input\",buffered:true}); \/\/ \u89c2\u5bdf\u7b2c\u4e00\u6b21\u4ea4\u4e92<br> &nbsp; <br> &nbsp;onload(()=&gt;{<br> &nbsp; &nbsp; &nbsp;setTimeout(()=&gt;{<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;let FP = performance.getEntriesByName(\"first-paint\")&#91;0]<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;let FCP = performance.getEntriesByName(\"first-contentful-paint\")&#91;0];<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;let paint_log = {<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;kind:\"experience\", \/\/\u7528\u6237\u4f53\u9a8c\u6307\u6807,<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;type:'paint', \/\/ \u7edf\u8ba1\u6bcf\u4e2a\u9636\u6bb5\u7684\u65f6\u95f4<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;firstPaint:FP.startTime, \/\/ \u9996\u6b21\u7ed8\u5236\u65f6\u95f4<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;firstContentPaint:FCP.startTime, \/\/ \u9996\u6b21\u5185\u5bb9\u7ed8\u5236\u65f6\u95f4<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;firstMeaningfulPaint:FMP.startTime, \/\/ \u9996\u6b21\u610f\u4e49\u7ed8\u5236\u65f6\u95f4<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;largestContentfulPaint:LCP.startTime, \/\/\u6700\u5927\u5185\u5bb9\u6e32\u67d3\u65f6\u95f4<br> &nbsp; &nbsp; &nbsp; &nbsp;  }<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;console.log(\"-----\u6027\u80fd\u76d1\u63a7---\",paint_log)<br> &nbsp; &nbsp;  },2000)<br>  })<br>}<\/code><\/pre>\n\n\n\n<p>\u4e0a\u9762\u8868\u683c\u4e2d\u63d0\u5230\uff0c\u5728\u83b7\u53d6\u9996\u6b21\u6709\u610f\u4e49\u7ed8\u5236\u7684\u8017\u65f6\u7684\u65f6\u5019\uff0c\u9700\u8981\u5728HTML\u4e2d\u6dfb\u52a0\u4e00\u4e2a elementtiming \u5c5e\u6027\uff0c\u5c5e\u6027\u503c\u53ef\u4ee5\u968f\u610f\u3002 \u793a\u4f8b\u5982\u4e0b<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;!DOCTYPE html&gt;<br>&lt;html lang=\"en\"&gt;<br>\u200b<br>&lt;head&gt;<br> &nbsp;&lt;meta charset=\"UTF-8\"&gt;<br> &nbsp;&lt;meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\"&gt;<br> &nbsp;&lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;<br> &nbsp;&lt;title&gt;\u524d\u7aef\u76d1\u63a7SDK&lt;\/title&gt;<br> &nbsp;&lt;script src=\"https:\/\/cdn.bootcdn.net\/ajax\/libs\/axios\/0.27.2\/axios.js\"&gt;&lt;\/script&gt;<br>&lt;\/head&gt;<br>\u200b<br>&lt;body&gt;<br> &nbsp;&lt;div class=\"container\"&gt;<br> &nbsp; &nbsp;&lt;p&gt;\u6d4b\u8bd5\u4e00\u4e0b\u6e32\u67d3\u901f\u5ea6&lt;\/p&gt;<br> &nbsp;&lt;\/div&gt;<br>\u200b<br> &nbsp;&lt;script&gt;<br> &nbsp; &nbsp;setTimeout(()=&gt;{<br> &nbsp; &nbsp; &nbsp;let content = document.getElementsByClassName(\"container\")&#91;0];<br> &nbsp; &nbsp; &nbsp;let h1 = document.createElement(\"h1\");<br> &nbsp; &nbsp; &nbsp;h1.innerHTML = \"\u6211\u4e3a\u5565\u662f\u6709\u610f\u4e49\u7684\u5185\u5bb9\u5440,\u56e0\u4e3a\u6211\u6709elementtiming\";<br> &nbsp; &nbsp; &nbsp;h1.setAttribute(\"elementtiming\",\"xxx\")<br> &nbsp; &nbsp; &nbsp;content.appendChild(h1)<br> &nbsp;  },2000)<br> &nbsp;&lt;\/script&gt;<br>&lt;\/body&gt;<br>&lt;\/html&gt;<\/code><\/pre>\n\n\n\n<p><a href=\"https:\/\/github.com\/gongjianOnline\/webMonitor\">DEMO\u5730\u5740,\u6bcf\u4e00\u4e2a\u529f\u80fd\u90fd\u5728\u4e00\u4e2a\u5355\u72ec\u7684commit\u4e2d<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u9875\u9762\u52a0\u8f7d\u65f6\u95f4 \u9636\u6bb5\u8ba1\u7b97\u8868 \u5b57\u6bb5 \u63cf\u8ff0 \u8ba1\u7b97\u65b9\u5f0f \u610f\u4e49 unload \u524d\u4e00\u4e2a\u9875\u9762\u5378\u8f7d\u8017\u65f6 unloadEvent [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[51],"tags":[],"class_list":["post-440","post","type-post","status-publish","format-standard","hentry","category-51"],"_links":{"self":[{"href":"https:\/\/gjweb.top\/index.php?rest_route=\/wp\/v2\/posts\/440","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gjweb.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gjweb.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gjweb.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gjweb.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=440"}],"version-history":[{"count":1,"href":"https:\/\/gjweb.top\/index.php?rest_route=\/wp\/v2\/posts\/440\/revisions"}],"predecessor-version":[{"id":441,"href":"https:\/\/gjweb.top\/index.php?rest_route=\/wp\/v2\/posts\/440\/revisions\/441"}],"wp:attachment":[{"href":"https:\/\/gjweb.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=440"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gjweb.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=440"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gjweb.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=440"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}