<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>前端開發 Archives - 成長駭客交流第一站 - HyperGrowths™</title>
	<atom:link href="https://hypergrowths.com/category/software-engineering/front-end-dev/feed/" rel="self" type="application/rss+xml" />
	<link>https://hypergrowths.com/category/software-engineering/front-end-dev/</link>
	<description>用SEO內容行銷加速增長? 企業發展遇到增長瓶頸？加入 HyperGrowths，學習突破性增長策略，優化行銷方案，助力企業飛躍式發展</description>
	<lastBuildDate>Tue, 29 Aug 2023 17:38:58 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.3.5</generator>

<image>
	<url>https://hypergrowths.com/wp-content/uploads/2020/11/cropped-?.png</url>
	<title>前端開發 Archives - 成長駭客交流第一站 - HyperGrowths™</title>
	<link>https://hypergrowths.com/category/software-engineering/front-end-dev/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>PWA 漸進式實踐 （1） &#8211; Lighthouse in Action</title>
		<link>https://hypergrowths.com/amazon/38158/topic-24864565/</link>
		
		<dc:creator><![CDATA[marketer]]></dc:creator>
		<pubDate>Tue, 30 Nov 2021 04:42:55 +0000</pubDate>
				<category><![CDATA[Amazon 全球開店]]></category>
		<category><![CDATA[CRM]]></category>
		<category><![CDATA[Facebook廣告]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[前端開發]]></category>
		<category><![CDATA[數位行銷]]></category>
		<guid isPermaLink="false">https://hypergrowths.com/software-engineering/front-end-dev/38158/topic-24864565/</guid>

					<description><![CDATA[<p>不知道大家還記不記得之前的四篇 PWA 系列翻譯： 知乎專欄知乎專欄知乎專欄知乎專欄不過這畢竟是老外他們自己的實踐，而且相對來說是從科普角度來描述了 PWA 的實踐，對想要直接進行 PWA 優化的，可能會覺得比較囉...</p>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/amazon/38158/topic-24864565/" data-wpel-link="internal">PWA 漸進式實踐 （1） &#8211; Lighthouse in Action</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></description>
										<content:encoded><![CDATA[<article class="Post-Main Post-NormalMain" tabindex="-1">
<header class="Post-Header">
<h1 class="Post-Title">PWA 漸進式實踐 （1） - Lighthouse in Action</h1>
<div class="Post-Author">
<div class="AuthorInfo" itemprop="author" itemscope="" itemtype="http://schema.org/Person">
<div class="AuthorInfo"><meta itemprop="name" content="Mark"><meta itemprop="image" content="https://pic2.zhimg.com/v2-b2fa626e52a9635df4ac4d2a85d297c0_l.jpg?source=172ae18b"><meta itemprop="url" content="https://www.zhihu.com/people/markzhai"><meta itemprop="zhihu:followerCount"></div>
</div>
</div>
</header>
<div class="Post-RichTextContainer">
<style data-emotion-css="1yuhvjn">.css-1yuhvjn{margin-top:16px;}</style>
<div class="css-1yuhvjn">
<style data-emotion-css="3jt6os">.css-3jt6os .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-3jt6os .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-3jt6os .FileLinkCard-info{margin-left:12px;}.css-3jt6os .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-3jt6os .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-3jt6os .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="1wr1m8">.css-1wr1m8 .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-1wr1m8 .LinkCard.new,.css-1wr1m8 .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-1wr1m8 .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-1wr1m8 .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-1wr1m8 .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-1wr1m8 .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-1wr1m8 .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-1wr1m8 .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-1wr1m8 .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-1wr1m8 .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-1wr1m8 .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-1wr1m8 .LinkCard.old,.css-1wr1m8 .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}</style>
<style data-emotion-css="hypxot">.css-hypxot .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hypxot .LinkCard.old,.css-hypxot .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hypxot .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hypxot .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hypxot .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hypxot .LinkCard.new,.css-hypxot .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hypxot .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hypxot .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hypxot .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hypxot .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hypxot .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hypxot .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hypxot .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hypxot .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hypxot .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hypxot .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hypxot .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hypxot .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hypxot .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hypxot .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hypxot .FileLinkCard-info{margin-left:12px;}.css-hypxot .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hypxot .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="hnrfcf animation-1sh55c5">.css-hnrfcf{word-break:break-word;line-height:1.6;}.css-hnrfcf a.UserLink-link{color:#175199;}.css-hnrfcf a.UserLink-link:hover{border-bottom:1px solid #175199;}.css-hnrfcf lazy[data-lazy-status]{background-color:#F6F6F6;}.css-hnrfcf lazy[data-lazy-status="ok"]{background-color:transparent;-webkit-animation:animation-1sh55c5 0.5s ease-in;animation:animation-1sh55c5 0.5s ease-in;}.css-hnrfcf > *:first-of-type{margin-top:0;}.css-hnrfcf > :last-child{margin-bottom:0;}.css-hnrfcf h1,.css-hnrfcf h2{clear:left;margin-top:calc((1.4em * 2) / 1.2);margin-bottom:calc(1.4em / 1.2);font-size:1.2em;line-height:1.5;font-weight:600;}.css-hnrfcf h3,.css-hnrfcf h4,.css-hnrfcf h5,.css-hnrfcf h6{clear:left;margin-top:calc((1.4em * 1.5) / 1.1);margin-bottom:calc(1.4em / 1.1);font-size:1.1em;line-height:1.5;font-weight:600;}.css-hnrfcf u{-webkit-text-decoration:none;text-decoration:none;border-bottom:1px dashed #808080;}.css-hnrfcf b{font-weight:600;}.css-hnrfcf sup{font-size:0.8em;}.css-hnrfcf sup[data-draft-type='reference']{color:#175199;}.css-hnrfcf a:focus{outline:none;-webkit-transition:box-shadow 0.3s;transition:box-shadow 0.3s;}html[data-focus-visible] .css-hnrfcf a:focus{box-shadow:0 0 0 2px #FFFFFF,0 0 0 4px rgba(0,102,255,0.3);}.css-hnrfcf a.ztext-link,.css-hnrfcf a.internal,.css-hnrfcf a.external{-webkit-text-decoration:none;text-decoration:none;cursor:pointer;border-bottom:1px solid #808080;}.css-hnrfcf a.ztext-link:hover,.css-hnrfcf a.internal:hover,.css-hnrfcf a.external:hover{color:#175199;border-bottom:1px solid #175199;}.css-hnrfcf a.ztext-link > .ellipsis::after,.css-hnrfcf a.internal > .ellipsis::after,.css-hnrfcf a.external > .ellipsis::after{content:'...';}.css-hnrfcf a.ztext-link > .invisible,.css-hnrfcf a.internal > .invisible,.css-hnrfcf a.external > .invisible{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;}.css-hnrfcf a.ztext-link u,.css-hnrfcf a.internal u,.css-hnrfcf a.external u{border:none;}.css-hnrfcf a.member_mention{color:#175199;}.css-hnrfcf a.member_mention:hover{border-bottom:1px solid #175199;}.css-hnrfcf p{margin:1.4em 0;}.css-hnrfcf p.ztext-empty-paragraph{margin:calc((2.8em- (1.4em * 2 + 1.6em)) / 2) 0;}.css-hnrfcf p.ztext-empty-paragraph + .ztext-empty-paragraph{margin:1.4em 0;}.css-hnrfcf hr{margin:4em auto;width:240px;max-width:100%;border:none;border-top:1px solid #D3D3D3;}.css-hnrfcf img[eeimg]{max-width:100%;vertical-align:middle;}.css-hnrfcf img[eeimg="1"]{margin:0 3px;display:inline-block;}.css-hnrfcf img[eeimg="2"]{margin:1.4em 0;display:block;}.css-hnrfcf blockquote{margin:1.4em 0;padding-left:1em;color:#646464;border-left:3px solid #D3D3D3;}.css-hnrfcf ol,.css-hnrfcf ul{margin:1.4em 0;padding:0;}.css-hnrfcf ol ol,.css-hnrfcf ul ol,.css-hnrfcf ol ul,.css-hnrfcf ul ul{margin:0;}.css-hnrfcf ol > ol,.css-hnrfcf ul > ol,.css-hnrfcf ol > ul,.css-hnrfcf ul > ul{display:table-row;}.css-hnrfcf ol > ol::before,.css-hnrfcf ul > ol::before,.css-hnrfcf ol > ul::before,.css-hnrfcf ul > ul::before{display:table-cell;content:'';}.css-hnrfcf ul{display:table;}.css-hnrfcf ul>li{display:table-row;list-style:none;}.css-hnrfcf ul>li::before{display:table-cell;content:'&bull;  ';white-space:pre;}.css-hnrfcf ol{display:table;counter-reset:ol;}.css-hnrfcf ol > li{display:table-row;list-style:none;}.css-hnrfcf ol > li::before{display:table-cell;text-align:right;counter-increment:ol;content:counter(ol) '. ';white-space:pre;}.css-hnrfcf ol ol{counter-reset:ol2;}.css-hnrfcf ol ol li::before{counter-increment:ol2;content:counter(ol2) '. ';}.css-hnrfcf ol ol ol{counter-reset:ol3;}.css-hnrfcf ol ol ol li::before{counter-increment:ol3;content:counter(ol3) '. ';}.css-hnrfcf ol ol ol ol{counter-reset:ol4;}.css-hnrfcf ol ol ol ol li::before{counter-increment:ol4;content:counter(ol4) '. ';}.css-hnrfcf figure{margin:1.4em 0;}.css-hnrfcf figure .content_image,.css-hnrfcf figure .origin_image{margin:0 auto;}.css-hnrfcf figure figcaption{margin-top:calc(0.6em / 0.9);padding:0 1em;font-size:0.9em;line-height:1.5;text-align:center;color:#999999;}.css-hnrfcf figure + figure{margin-top:calc(1.4em * 1.6);}.css-hnrfcf figure[data-size='small'],.css-hnrfcf figure:not([data-size]) > [data-size='small']{clear:both;}.css-hnrfcf figure[data-size='left'],.css-hnrfcf figure:not([data-size]) > [data-size='left']{float:left;margin:0 20px 20px 0;max-width:33%;}.css-hnrfcf figure[data-size='right'],.css-hnrfcf figure:not([data-size]) > [data-size='right']{float:right;margin:0 0 20px 20px;max-width:33%;}.css-hnrfcf figure[data-size='collapse']{margin-bottom:0;}.css-hnrfcf figure[data-size='collapse'] + figure{margin-top:0;}.css-hnrfcf .content_image,.css-hnrfcf .origin_image{display:block;max-width:100%;margin:1.4em auto;}.css-hnrfcf .content_image[data-size='small'],.css-hnrfcf .origin_image[data-size='small']{max-width:40%;}.css-hnrfcf .content_image.zh-lightbox-thumb,.css-hnrfcf .origin_image.zh-lightbox-thumb{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in;}.css-hnrfcf code{margin:0 2px;padding:3px 4px;border-radius:3px;font-size:0.9em;background-color:#F6F6F6;}.css-hnrfcf pre{margin:1.4em 0;padding:calc(0.8em / 0.9);font-size:0.9em;word-break:initial;word-wrap:initial;white-space:pre;overflow:auto;-webkit-overflow-scrolling:touch;background:#F6F6F6;border-radius:4px;}.css-hnrfcf pre code{margin:0;padding:0;font-size:inherit;border-radius:0;background-color:inherit;}.css-hnrfcf li pre{white-space:pre-wrap;}.css-hnrfcf table[data-draft-type='table']{border-collapse:collapse;font-size:15px;margin:1.4em auto;max-width:100%;table-layout:fixed;text-align:left;width:100%;}.css-hnrfcf table[data-draft-type='table'][data-size='small']{min-width:260px;width:40%;}.css-hnrfcf table[data-draft-type='table'][data-row-style='striped'] tr:nth-of-type(2n + 1){background:#F6F6F6;}.css-hnrfcf table[data-draft-type='table'] td,.css-hnrfcf table[data-draft-type='table'] th{border:1px solid #D3D3D3;line-height:24px;height:24px;padding:3px 12px;}.css-hnrfcf table[data-draft-type='table'] th{background:#EBEBEB;color:#121212;font-weight:500;}.css-hnrfcf .video-box,.css-hnrfcf .link-box{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin:1.4em 0;overflow:auto;white-space:normal;cursor:pointer;border:solid 1px #EBEBEB;border-radius:4px;}.css-hnrfcf .highlight{margin:1em 0;}.css-hnrfcf .highlight pre{margin:0;}.css-hnrfcf .highlight .hll{background-color:#FDFDFD;}.css-hnrfcf .highlight .c{font-style:italic;color:#999999;}.css-hnrfcf .highlight .err{color:#F1403C;}.css-hnrfcf .highlight .k{font-weight:600;}.css-hnrfcf .highlight .o{font-weight:600;}.css-hnrfcf .highlight .cm{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cp{font-weight:600;color:#999999;}.css-hnrfcf .highlight .c1{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cs{font-style:italic;font-weight:600;color:#999999;}.css-hnrfcf .highlight .gd{color:#FF3366;}.css-hnrfcf .highlight .ge{font-style:italic;}.css-hnrfcf .highlight .gr{color:#F1403C;}.css-hnrfcf .highlight .gh{color:#999999;}.css-hnrfcf .highlight .gi{color:#12b370;}.css-hnrfcf .highlight .go{color:#808080;}.css-hnrfcf .highlight .gp{color:#646464;}.css-hnrfcf .highlight .gs{font-weight:600;}.css-hnrfcf .highlight .gu{color:#999999;}.css-hnrfcf .highlight .gt{color:#F1403C;}.css-hnrfcf .highlight .kc{font-weight:600;}.css-hnrfcf .highlight .kd{font-weight:600;}.css-hnrfcf .highlight .kn{font-weight:600;}.css-hnrfcf .highlight .kp{font-weight:600;}.css-hnrfcf .highlight .kr{font-weight:600;}.css-hnrfcf .highlight .kt{font-weight:600;color:#175199;}.css-hnrfcf .highlight .m{color:#0066FF;}.css-hnrfcf .highlight .s{color:#F1403C;}.css-hnrfcf .highlight .na{color:#0066FF;}.css-hnrfcf .highlight .nb{color:#0066FF;}.css-hnrfcf .highlight .nc{font-weight:600;color:#175199;}.css-hnrfcf .highlight .no{color:#0066FF;}.css-hnrfcf .highlight .ni{color:#5868D1;}.css-hnrfcf .highlight .ne{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nf{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nn{color:#646464;}.css-hnrfcf .highlight .nt{color:#175199;}.css-hnrfcf .highlight .nv{color:#0066FF;}.css-hnrfcf .highlight .ow{font-weight:600;}.css-hnrfcf .highlight .w{color:#BFBFBF;}.css-hnrfcf .highlight .mf{color:#0066FF;}.css-hnrfcf .highlight .mh{color:#0066FF;}.css-hnrfcf .highlight .mi{color:#0066FF;}.css-hnrfcf .highlight .mo{color:#0066FF;}.css-hnrfcf .highlight .sb{color:#F1403C;}.css-hnrfcf .highlight .sc{color:#F1403C;}.css-hnrfcf .highlight .sd{color:#F1403C;}.css-hnrfcf .highlight .s2{color:#F1403C;}.css-hnrfcf .highlight .se{color:#F1403C;}.css-hnrfcf .highlight .sh{color:#F1403C;}.css-hnrfcf .highlight .si{color:#F1403C;}.css-hnrfcf .highlight .sx{color:#F1403C;}.css-hnrfcf .highlight .sr{color:#C2A469;}.css-hnrfcf .highlight .s1{color:#F1403C;}.css-hnrfcf .highlight .ss{color:#F1403C;}.css-hnrfcf .highlight .bp{color:#999999;}.css-hnrfcf .highlight .vc{color:#0066FF;}.css-hnrfcf .highlight .vg{color:#0066FF;}.css-hnrfcf .highlight .vi{color:#0066FF;}.css-hnrfcf .highlight .il{color:#0066FF;}.css-hnrfcf .highlight::-webkit-scrollbar{width:6px;height:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal{background-color:rgba(18,18,18,0.5);border-radius:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal:hover{background-color:rgba(18,18,18,0.6);}.css-hnrfcf .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hnrfcf .LinkCard.old,.css-hnrfcf .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hnrfcf .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hnrfcf .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hnrfcf .LinkCard.new,.css-hnrfcf .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hnrfcf .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hnrfcf .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hnrfcf .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hnrfcf .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hnrfcf .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hnrfcf .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hnrfcf .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hnrfcf .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hnrfcf .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hnrfcf .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hnrfcf .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hnrfcf .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hnrfcf .FileLinkCard-info{margin-left:12px;}.css-hnrfcf .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hnrfcf .FileLinkCard-source{white-space:pre;}@-webkit-keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}@keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}</style>
<div class="RichText ztext Post-RichText css-hnrfcf" options="[object Object]">
<p data-pid="sNWzEvpO">不知道大家還記不記得之前的四篇 PWA 系列翻譯：</p>
<ul>
<li data-pid="nfKx6WL1"><a href="https://zhuanlan.zhihu.com/p/23673184?refer=moduth" class="internal" data-wpel-link="external" rel="nofollow external noopener noreferrer">知乎專欄</a></li>
<li data-pid="T65gxfJe"><a href="https://zhuanlan.zhihu.com/p/23926652?refer=moduth" class="internal" data-wpel-link="external" rel="nofollow external noopener noreferrer">知乎專欄</a></li>
<li data-pid="IWLJNSRR"><a href="https://zhuanlan.zhihu.com/p/23966686?refer=moduth" class="internal" data-wpel-link="external" rel="nofollow external noopener noreferrer">知乎專欄</a></li>
<li data-pid="7f8HaUss"><a href="https://zhuanlan.zhihu.com/p/23966862?refer=moduth" class="internal" data-wpel-link="external" rel="nofollow external noopener noreferrer">知乎專欄</a></li>
</ul>
<p data-pid="OjJiQuv0">不過這畢竟是老外他們自己的實踐，而且相對來說是從科普角度來描述了 PWA 的實踐，對想要直接進行 PWA 優化的，可能會覺得比較囉嗦。</p>
<p data-pid="nZ3CurAx">恰好我司最近使用 React 全家桶開發了一個網站：<a href="https://link.zhihu.com/?target=https%3A//pai.bigins.cn" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">海綿保保</a>，所以乾脆就拿它開刀，來進行 PWA 優化，順便記錄一下點滴。</p>
<p data-pid="nK0SWqF6">作為切入的工具，Lighthouse 見：<a href="https://link.zhihu.com/?target=https%3A//chrome.google.com/webstore/detail/lighthouse/blipmdconlkpinefehnmjammfjpmpbjk" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">Lighthouse Chrome 外掛程式</a>。</p>
<h1>Lighthouse</h1>
<p data-pid="jFEYgYZ1">首先我看了下 taobao 的評分，21/100，恩... 這樣一來，就有信心了，再怎麼我們肯定比它高不是？</p>
<p data-pid="WLMZhoyE">測了一下，嗯... 果然還算看得過去，66分，至少及格了不是？</p>
<figure><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-a267e825e42ee5b484e62d1ae896ab2f_r.png" data-rawwidth="552" data-rawheight="90" class="origin_image zh-lightbox-thumb" width="552" data-original="https://pic4.zhimg.com/v2-a267e825e42ee5b484e62d1ae896ab2f_b.png" title="v2-a267e825e42ee5b484e62d1ae896ab2f_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-a267e825e42ee5b484e62d1ae896ab2f_r.png" data-rawwidth="552" data-rawheight="90" class="origin_image zh-lightbox-thumb lazy" width="552" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='552'%20height='90'&gt;&lt;/svg&gt;" data-actualsrc="https://pic4.zhimg.com/v2-a267e825e42ee5b484e62d1ae896ab2f_b.png" title="v2-a267e825e42ee5b484e62d1ae896ab2f_r"></figure>
<p data-pid="hxi1QaxC">我們的目標就是能把它優化到<strong>90分</strong>以上！ （作為 PWA 模範的 <a href="https://link.zhihu.com/?target=http%3A//mobile.twitter.com" class=" external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external"><span class="invisible">http://</span><span class="visible">mobile.twitter.com</span></a>，就達到了90分）</p>
<p data-pid="EKevlti7">作為系列第一篇，我們先來看看有哪些問題導致了網站評分不夠高，其產生原因和大概的解決策略。</p>
<h1>App在離線/間斷網路下的載入</h1>
<p data-pid="h7d61BgX">第一類就是 Service Worker 導致的問題：</p>
<figure><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-b9a98b986c3f7c4e73134bf266268633_r.jpg" data-rawwidth="683" data-rawheight="304" class="origin_image zh-lightbox-thumb" width="683" data-original="https://pic4.zhimg.com/v2-b9a98b986c3f7c4e73134bf266268633_b.png" title="v2-b9a98b986c3f7c4e73134bf266268633_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-b9a98b986c3f7c4e73134bf266268633_r.jpg" data-rawwidth="683" data-rawheight="304" class="origin_image zh-lightbox-thumb lazy" width="683" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='683'%20height='304'&gt;&lt;/svg&gt;" data-actualsrc="https://pic4.zhimg.com/v2-b9a98b986c3f7c4e73134bf266268633_b.png" title="v2-b9a98b986c3f7c4e73134bf266268633_r"></figure>
<p data-pid="lgUsAQDv">簡單描述 Service Worker 的話，可以理解為一個本地的 server，在用戶端（瀏覽器）發起請求的時候，可以直接監聽到它並直接進行回應。</p>
<p data-pid="0e0x8_Kg">當然，它不僅僅是這麼一個攔截器，本身作為一個後台運行的任務，它還能進行預載入，離線回應（返回200），甚至進行 push 提示。</p>
<h1>頁面載入性能</h1>
<figure><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-1539dec957fbe8ce5938d6b6bf7d22f5_r.jpg" data-rawwidth="701" data-rawheight="617" class="origin_image zh-lightbox-thumb" width="701" data-original="https://pic2.zhimg.com/v2-1539dec957fbe8ce5938d6b6bf7d22f5_b.png" title="v2-1539dec957fbe8ce5938d6b6bf7d22f5_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-1539dec957fbe8ce5938d6b6bf7d22f5_r.jpg" data-rawwidth="701" data-rawheight="617" class="origin_image zh-lightbox-thumb lazy" width="701" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='701'%20height='617'&gt;&lt;/svg&gt;" data-actualsrc="https://pic2.zhimg.com/v2-1539dec957fbe8ce5938d6b6bf7d22f5_b.png" title="v2-1539dec957fbe8ce5938d6b6bf7d22f5_r"></figure>
<p></p>
<p data-pid="i1YyogmL">各種性能指標不夠過關啦。</p>
<h1>漸進式增強</h1>
<figure><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-328a77d31cb1329d54209d5958ef882e_r.jpg" data-rawwidth="673" data-rawheight="227" class="origin_image zh-lightbox-thumb" width="673" data-original="https://pic3.zhimg.com/v2-328a77d31cb1329d54209d5958ef882e_b.png" title="v2-328a77d31cb1329d54209d5958ef882e_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-328a77d31cb1329d54209d5958ef882e_r.jpg" data-rawwidth="673" data-rawheight="227" class="origin_image zh-lightbox-thumb lazy" width="673" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='673'%20height='227'&gt;&lt;/svg&gt;" data-actualsrc="https://pic3.zhimg.com/v2-328a77d31cb1329d54209d5958ef882e_b.png" title="v2-328a77d31cb1329d54209d5958ef882e_r"></figure>
<p data-pid="eCWUY-ZG">即 JavaScript 被禁用的時候，頁面仍然應該有內容，即便那只是提示使用者需要打開 JavaScript 以使用 app。</p>
<h1>添加到主螢幕</h1>
<figure><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-01b086a57b876e29f0de5bc9921455e5_r.jpg" data-rawwidth="774" data-rawheight="418" class="origin_image zh-lightbox-thumb" width="774" data-original="https://pic2.zhimg.com/v2-01b086a57b876e29f0de5bc9921455e5_b.png" title="v2-01b086a57b876e29f0de5bc9921455e5_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-01b086a57b876e29f0de5bc9921455e5_r.jpg" data-rawwidth="774" data-rawheight="418" class="origin_image zh-lightbox-thumb lazy" width="774" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='774'%20height='418'&gt;&lt;/svg&gt;" data-actualsrc="https://pic2.zhimg.com/v2-01b086a57b876e29f0de5bc9921455e5_b.png" title="v2-01b086a57b876e29f0de5bc9921455e5_r"></figure>
<p></p>
<p data-pid="oW00PV7m">manifest 其實我已經加上了，還是因為 service worker 沒有註冊，所以最後沒有生效。</p>
<h1>避免影響用戶體驗的APIs</h1>
<figure><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-800fab65beb694361b69fa2c137d538b_r.jpg" data-rawwidth="788" data-rawheight="399" class="origin_image zh-lightbox-thumb" width="788" data-original="https://pic4.zhimg.com/v2-800fab65beb694361b69fa2c137d538b_b.png" title="v2-800fab65beb694361b69fa2c137d538b_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-800fab65beb694361b69fa2c137d538b_r.jpg" data-rawwidth="788" data-rawheight="399" class="origin_image zh-lightbox-thumb lazy" width="788" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='788'%20height='399'&gt;&lt;/svg&gt;" data-actualsrc="https://pic4.zhimg.com/v2-800fab65beb694361b69fa2c137d538b_b.png" title="v2-800fab65beb694361b69fa2c137d538b_r"></figure>
<p data-pid="oJ015609">一些 css 標籤放在 header 裡，阻塞影響到了頁面體驗。</p>
<h1>輔助功能</h1>
<figure><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-9038768ff64d1a22cdd54472e136861e_r.jpg" data-rawwidth="836" data-rawheight="1005" class="origin_image zh-lightbox-thumb" width="836" data-original="https://pic3.zhimg.com/v2-9038768ff64d1a22cdd54472e136861e_b.png" title="v2-9038768ff64d1a22cdd54472e136861e_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-9038768ff64d1a22cdd54472e136861e_r.jpg" data-rawwidth="836" data-rawheight="1005" class="origin_image zh-lightbox-thumb lazy" width="836" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='836'%20height='1005'&gt;&lt;/svg&gt;" data-actualsrc="https://pic3.zhimg.com/v2-9038768ff64d1a22cdd54472e136861e_b.png" title="v2-9038768ff64d1a22cdd54472e136861e_r"></figure>
<p data-pid="PWdM7gLS">對比度啦，標籤啦，還有那麼幾個缺省了的。</p>
<h1>性能指標</h1>
<figure><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-4a84f74861c4e4bca3fd7a59e44d1153_r.jpg" data-rawwidth="835" data-rawheight="522" class="origin_image zh-lightbox-thumb" width="835" data-original="https://pic4.zhimg.com/v2-4a84f74861c4e4bca3fd7a59e44d1153_b.png" title="v2-4a84f74861c4e4bca3fd7a59e44d1153_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-4a84f74861c4e4bca3fd7a59e44d1153_r.jpg" data-rawwidth="835" data-rawheight="522" class="origin_image zh-lightbox-thumb lazy" width="835" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='835'%20height='522'&gt;&lt;/svg&gt;" data-actualsrc="https://pic4.zhimg.com/v2-4a84f74861c4e4bca3fd7a59e44d1153_b.png" title="v2-4a84f74861c4e4bca3fd7a59e44d1153_r"></figure>
<p></p>
<p data-pid="dMofrgbk">載入鏈太長。</p>
<h1>奇妙的東西</h1>
<p data-pid="9K6Snk_M">總而言之就是一些新特性。</p>
<figure><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-d398165e29a232578b70f69a46c0329a_r.jpg" data-rawwidth="843" data-rawheight="363" class="origin_image zh-lightbox-thumb" width="843" data-original="https://pic3.zhimg.com/v2-d398165e29a232578b70f69a46c0329a_b.png" title="v2-d398165e29a232578b70f69a46c0329a_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-d398165e29a232578b70f69a46c0329a_r.jpg" data-rawwidth="843" data-rawheight="363" class="origin_image zh-lightbox-thumb lazy" width="843" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='843'%20height='363'&gt;&lt;/svg&gt;" data-actualsrc="https://pic3.zhimg.com/v2-d398165e29a232578b70f69a46c0329a_b.png" title="v2-d398165e29a232578b70f69a46c0329a_r"></figure>
<p data-pid="SUXfSry9">然而好像是外掛程式還是 sw-tools 導致的。</p>
<h1>預告</h1>
<p data-pid="0fmfUZsd">本篇中我們大致看到了哪些問題導致了我們的webapp的 PWA 評分不夠高，下一次，我們會開始逐個開刀，解決這些問題。 對本話題感興趣的朋友，也可以使用 Lighthouse 外掛程式，對自家的網站或者其他網站來評評分，看看做得有多好（其實我們的<strong>66分</strong>真的已經挺高了）。</p>
<p></p>
<p data-pid="DV3ukDQh">​</p>
</div>
</div>
</div>
</article>
<h3 style="padding: 15px 0; margin-top:30px;">想了解更多關於 Facebook 與 Google 廣告投放？</h3>
<ul>
<li><a href="https://tenten.co/learning/google-ads-vs-facebook-ads/" data-wpel-link="internal" rel="noopener noreferrer">Google Ads 與 Facebook Ads：哪個更適合您的 2022 年廣告策略？</a></li>
<li><a href="https://university.tenten.co/t/adtech-header-bidding/1087/" data-wpel-link="external" rel="nofollow external noopener noreferrer">AD Tech - 廣告科技總整理</a></li>
</ul>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/amazon/38158/topic-24864565/" data-wpel-link="internal">PWA 漸進式實踐 （1） &#8211; Lighthouse in Action</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Lighthouse &#124; Chrome 團隊開源的網站性能評測工具</title>
		<link>https://hypergrowths.com/software-engineering/front-end-dev/38154/topic-29058829/</link>
		
		<dc:creator><![CDATA[marketer]]></dc:creator>
		<pubDate>Tue, 30 Nov 2021 04:42:38 +0000</pubDate>
				<category><![CDATA[前端開發]]></category>
		<category><![CDATA[極光日報]]></category>
		<guid isPermaLink="false">https://hypergrowths.com/software-engineering/front-end-dev/38154/topic-29058829/</guid>

					<description><![CDATA[<p>簡評：Chrome 團隊的一個開源專案，它能對網站的性能進行測評，同時還能生成一份詳盡的報告。 Lighthouse 是一個開源的自動化工具，用於改進網路應用的品質。 開發者可以將其作為一個 Chrome 擴展程式運行，或從命...</p>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/software-engineering/front-end-dev/38154/topic-29058829/" data-wpel-link="internal">Lighthouse | Chrome 團隊開源的網站性能評測工具</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Lighthouse | Chrome 團隊開源的網站性能評測工具</h1>
<blockquote>
<p><strong>簡評：</strong> Chrome 團隊的一個開源專案，它能對網站的性能進行測評，同時還能生成一份詳盡的報告。</p>
</blockquote>
<p><a href="https://link.zhihu.com/?target=https%3A//github.com/GoogleChrome/lighthouse" data-wpel-link="external" rel="nofollow external noopener noreferrer">Lighthouse</a> 是一個開源的自動化工具，用於改進網路應用的品質。 開發者可以將其作為一個 Chrome 擴展程式運行，或從命令行運行。 <a href="https://link.zhihu.com/?target=https%3A//chrome.google.com/webstore/detail/lighthouse/blipmdconlkpinefehnmjammfjpmpbjk" data-wpel-link="external" rel="nofollow external noopener noreferrer">Chrome 擴充程式</a>提供了一個對使用者更友好的介面，方便讀取報告。 而命令行工具則允許開發者將 Lighthouse 整合到持續整合系統。</p>
<p>使用時，先提供一個需要審查的網址，它將針對此頁面運行一連串的測試，然後生成一個有關頁面性能的報告。</p>
<h2><strong>使用 Chrome 擴充程式</strong></h2>
<p><strong>安裝：</strong>從 Chrome 應用商店安裝 <a href="https://link.zhihu.com/?target=https%3A//chrome.google.com/webstore/detail/lighthouse/blipmdconlkpinefehnmjammfjpmpbjk" data-wpel-link="external" rel="nofollow external noopener noreferrer">延伸程式</a></p>
<p><strong>運行：</strong>點擊 Generate report 按鈕以針對當前打開的頁面運行 Lighthouse 測試</p>
<p><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-d2ac71360987e0c641ee7ea51079f4ed_r.jpg" alt="" title="v2-d2ac71360987e0c641ee7ea51079f4ed_r" /></p>
<p><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-d2ac71360987e0c641ee7ea51079f4ed_r.jpg" alt="" title="v2-d2ac71360987e0c641ee7ea51079f4ed_r" /></p>
<h2><strong>使用命令行工具</strong></h2>
<p>安裝 <a href="https://link.zhihu.com/?target=https%3A//nodejs.org/" data-wpel-link="external" rel="nofollow external noopener noreferrer">Node</a>，需要版本 5 或更高版本。</p>
<p>安裝 Lighthouse 作為一個全域節點模組。</p>
<pre><code>npm install -g lighthouse</code></pre>
<p>針對一個頁面運行 Lighthouse 審查。</p>
<pre><code>lighthouse https://airhorner.com/</code></pre>
<p>傳遞 --help 標誌以查看可用的輸入和輸出選項。</p>
<pre><code>lighthouse --help</code></pre>
<h2><strong>查看報告</strong></h2>
<p>Lighthouse 能夠生成一份 JSON 或 HTML 報告：</p>
<p><img decoding="async" src="https://s3.tenten.co/hypergrowth/image/2021/11/v2-8af2fd9fb2f673a690e0b98d92f0b8ed_r.jpg" alt="" title="v2-8af2fd9fb2f673a690e0b98d92f0b8ed_r-1" /></p>
<p><img decoding="async" src="https://s3.tenten.co/hypergrowth/image/2021/11/v2-8af2fd9fb2f673a690e0b98d92f0b8ed_r.jpg" alt="" title="v2-8af2fd9fb2f673a690e0b98d92f0b8ed_r-1" /></p>
<hr />
<blockquote>
<p><strong>Github：</strong></p>
</blockquote>
<p><a href="https://link.zhihu.com/?target=https%3A//github.com/GoogleChrome/lighthouse" data-wpel-link="external" rel="nofollow external noopener noreferrer">GoogleChrome/lighthouse</a></p>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/software-engineering/front-end-dev/38154/topic-29058829/" data-wpel-link="internal">Lighthouse | Chrome 團隊開源的網站性能評測工具</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>使用Chrome一鍵分析網站</title>
		<link>https://hypergrowths.com/software-engineering/front-end-dev/38148/topic-56411701/</link>
		
		<dc:creator><![CDATA[marketer]]></dc:creator>
		<pubDate>Tue, 30 Nov 2021 04:42:12 +0000</pubDate>
				<category><![CDATA[前端開發]]></category>
		<category><![CDATA[不止前端]]></category>
		<guid isPermaLink="false">https://hypergrowths.com/software-engineering/front-end-dev/38148/topic-56411701/</guid>

					<description><![CDATA[<p>這裡用到了Chrome里開發者工具裡的Audit面板，其實背後調用的是lighthouse 選擇后直接點Run audits按鈕，直接生成報告，下面是對知乎網站生成的分析報告 可以看到性能和PWA兩項得分很低 PWA裡都是紅叉，幾乎都沒做...</p>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/software-engineering/front-end-dev/38148/topic-56411701/" data-wpel-link="internal">使用Chrome一鍵分析網站</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></description>
										<content:encoded><![CDATA[<article class="Post-Main Post-NormalMain" tabindex="-1">
<header class="Post-Header">
<h1 class="Post-Title">使用Chrome一鍵分析網站</h1>
<div class="Post-Author">
<div class="AuthorInfo" itemprop="author" itemscope="" itemtype="http://schema.org/Person">
<div class="AuthorInfo"><meta itemprop="name" content="AnLi"><meta itemprop="image" content="https://pic3.zhimg.com/v2-a1f6df099bf9a72c7ad624240b576ec6_l.jpg?source=172ae18b"><meta itemprop="url" content="https://www.zhihu.com/people/anli-li-69"><meta itemprop="zhihu:followerCount"></div>
</div>
</div>
</header>
<div class="Post-RichTextContainer">
<style data-emotion-css="1yuhvjn">.css-1yuhvjn{margin-top:16px;}</style>
<div class="css-1yuhvjn">
<style data-emotion-css="3jt6os">.css-3jt6os .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-3jt6os .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-3jt6os .FileLinkCard-info{margin-left:12px;}.css-3jt6os .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-3jt6os .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-3jt6os .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="1wr1m8">.css-1wr1m8 .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-1wr1m8 .LinkCard.new,.css-1wr1m8 .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-1wr1m8 .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-1wr1m8 .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-1wr1m8 .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-1wr1m8 .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-1wr1m8 .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-1wr1m8 .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-1wr1m8 .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-1wr1m8 .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-1wr1m8 .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-1wr1m8 .LinkCard.old,.css-1wr1m8 .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}</style>
<style data-emotion-css="hypxot">.css-hypxot .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hypxot .LinkCard.old,.css-hypxot .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hypxot .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hypxot .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hypxot .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hypxot .LinkCard.new,.css-hypxot .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hypxot .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hypxot .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hypxot .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hypxot .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hypxot .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hypxot .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hypxot .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hypxot .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hypxot .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hypxot .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hypxot .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hypxot .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hypxot .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hypxot .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hypxot .FileLinkCard-info{margin-left:12px;}.css-hypxot .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hypxot .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="hnrfcf animation-1sh55c5">.css-hnrfcf{word-break:break-word;line-height:1.6;}.css-hnrfcf a.UserLink-link{color:#175199;}.css-hnrfcf a.UserLink-link:hover{border-bottom:1px solid #175199;}.css-hnrfcf lazy[data-lazy-status]{background-color:#F6F6F6;}.css-hnrfcf lazy[data-lazy-status="ok"]{background-color:transparent;-webkit-animation:animation-1sh55c5 0.5s ease-in;animation:animation-1sh55c5 0.5s ease-in;}.css-hnrfcf > *:first-of-type{margin-top:0;}.css-hnrfcf > :last-child{margin-bottom:0;}.css-hnrfcf h1,.css-hnrfcf h2{clear:left;margin-top:calc((1.4em * 2) / 1.2);margin-bottom:calc(1.4em / 1.2);font-size:1.2em;line-height:1.5;font-weight:600;}.css-hnrfcf h3,.css-hnrfcf h4,.css-hnrfcf h5,.css-hnrfcf h6{clear:left;margin-top:calc((1.4em * 1.5) / 1.1);margin-bottom:calc(1.4em / 1.1);font-size:1.1em;line-height:1.5;font-weight:600;}.css-hnrfcf u{-webkit-text-decoration:none;text-decoration:none;border-bottom:1px dashed #808080;}.css-hnrfcf b{font-weight:600;}.css-hnrfcf sup{font-size:0.8em;}.css-hnrfcf sup[data-draft-type='reference']{color:#175199;}.css-hnrfcf a:focus{outline:none;-webkit-transition:box-shadow 0.3s;transition:box-shadow 0.3s;}html[data-focus-visible] .css-hnrfcf a:focus{box-shadow:0 0 0 2px #FFFFFF,0 0 0 4px rgba(0,102,255,0.3);}.css-hnrfcf a.ztext-link,.css-hnrfcf a.internal,.css-hnrfcf a.external{-webkit-text-decoration:none;text-decoration:none;cursor:pointer;border-bottom:1px solid #808080;}.css-hnrfcf a.ztext-link:hover,.css-hnrfcf a.internal:hover,.css-hnrfcf a.external:hover{color:#175199;border-bottom:1px solid #175199;}.css-hnrfcf a.ztext-link > .ellipsis::after,.css-hnrfcf a.internal > .ellipsis::after,.css-hnrfcf a.external > .ellipsis::after{content:'...';}.css-hnrfcf a.ztext-link > .invisible,.css-hnrfcf a.internal > .invisible,.css-hnrfcf a.external > .invisible{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;}.css-hnrfcf a.ztext-link u,.css-hnrfcf a.internal u,.css-hnrfcf a.external u{border:none;}.css-hnrfcf a.member_mention{color:#175199;}.css-hnrfcf a.member_mention:hover{border-bottom:1px solid #175199;}.css-hnrfcf p{margin:1.4em 0;}.css-hnrfcf p.ztext-empty-paragraph{margin:calc((2.8em- (1.4em * 2 + 1.6em)) / 2) 0;}.css-hnrfcf p.ztext-empty-paragraph + .ztext-empty-paragraph{margin:1.4em 0;}.css-hnrfcf hr{margin:4em auto;width:240px;max-width:100%;border:none;border-top:1px solid #D3D3D3;}.css-hnrfcf img[eeimg]{max-width:100%;vertical-align:middle;}.css-hnrfcf img[eeimg="1"]{margin:0 3px;display:inline-block;}.css-hnrfcf img[eeimg="2"]{margin:1.4em 0;display:block;}.css-hnrfcf blockquote{margin:1.4em 0;padding-left:1em;color:#646464;border-left:3px solid #D3D3D3;}.css-hnrfcf ol,.css-hnrfcf ul{margin:1.4em 0;padding:0;}.css-hnrfcf ol ol,.css-hnrfcf ul ol,.css-hnrfcf ol ul,.css-hnrfcf ul ul{margin:0;}.css-hnrfcf ol > ol,.css-hnrfcf ul > ol,.css-hnrfcf ol > ul,.css-hnrfcf ul > ul{display:table-row;}.css-hnrfcf ol > ol::before,.css-hnrfcf ul > ol::before,.css-hnrfcf ol > ul::before,.css-hnrfcf ul > ul::before{display:table-cell;content:'';}.css-hnrfcf ul{display:table;}.css-hnrfcf ul>li{display:table-row;list-style:none;}.css-hnrfcf ul>li::before{display:table-cell;content:'&bull;  ';white-space:pre;}.css-hnrfcf ol{display:table;counter-reset:ol;}.css-hnrfcf ol > li{display:table-row;list-style:none;}.css-hnrfcf ol > li::before{display:table-cell;text-align:right;counter-increment:ol;content:counter(ol) '. ';white-space:pre;}.css-hnrfcf ol ol{counter-reset:ol2;}.css-hnrfcf ol ol li::before{counter-increment:ol2;content:counter(ol2) '. ';}.css-hnrfcf ol ol ol{counter-reset:ol3;}.css-hnrfcf ol ol ol li::before{counter-increment:ol3;content:counter(ol3) '. ';}.css-hnrfcf ol ol ol ol{counter-reset:ol4;}.css-hnrfcf ol ol ol ol li::before{counter-increment:ol4;content:counter(ol4) '. ';}.css-hnrfcf figure{margin:1.4em 0;}.css-hnrfcf figure .content_image,.css-hnrfcf figure .origin_image{margin:0 auto;}.css-hnrfcf figure figcaption{margin-top:calc(0.6em / 0.9);padding:0 1em;font-size:0.9em;line-height:1.5;text-align:center;color:#999999;}.css-hnrfcf figure + figure{margin-top:calc(1.4em * 1.6);}.css-hnrfcf figure[data-size='small'],.css-hnrfcf figure:not([data-size]) > [data-size='small']{clear:both;}.css-hnrfcf figure[data-size='left'],.css-hnrfcf figure:not([data-size]) > [data-size='left']{float:left;margin:0 20px 20px 0;max-width:33%;}.css-hnrfcf figure[data-size='right'],.css-hnrfcf figure:not([data-size]) > [data-size='right']{float:right;margin:0 0 20px 20px;max-width:33%;}.css-hnrfcf figure[data-size='collapse']{margin-bottom:0;}.css-hnrfcf figure[data-size='collapse'] + figure{margin-top:0;}.css-hnrfcf .content_image,.css-hnrfcf .origin_image{display:block;max-width:100%;margin:1.4em auto;}.css-hnrfcf .content_image[data-size='small'],.css-hnrfcf .origin_image[data-size='small']{max-width:40%;}.css-hnrfcf .content_image.zh-lightbox-thumb,.css-hnrfcf .origin_image.zh-lightbox-thumb{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in;}.css-hnrfcf code{margin:0 2px;padding:3px 4px;border-radius:3px;font-size:0.9em;background-color:#F6F6F6;}.css-hnrfcf pre{margin:1.4em 0;padding:calc(0.8em / 0.9);font-size:0.9em;word-break:initial;word-wrap:initial;white-space:pre;overflow:auto;-webkit-overflow-scrolling:touch;background:#F6F6F6;border-radius:4px;}.css-hnrfcf pre code{margin:0;padding:0;font-size:inherit;border-radius:0;background-color:inherit;}.css-hnrfcf li pre{white-space:pre-wrap;}.css-hnrfcf table[data-draft-type='table']{border-collapse:collapse;font-size:15px;margin:1.4em auto;max-width:100%;table-layout:fixed;text-align:left;width:100%;}.css-hnrfcf table[data-draft-type='table'][data-size='small']{min-width:260px;width:40%;}.css-hnrfcf table[data-draft-type='table'][data-row-style='striped'] tr:nth-of-type(2n + 1){background:#F6F6F6;}.css-hnrfcf table[data-draft-type='table'] td,.css-hnrfcf table[data-draft-type='table'] th{border:1px solid #D3D3D3;line-height:24px;height:24px;padding:3px 12px;}.css-hnrfcf table[data-draft-type='table'] th{background:#EBEBEB;color:#121212;font-weight:500;}.css-hnrfcf .video-box,.css-hnrfcf .link-box{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin:1.4em 0;overflow:auto;white-space:normal;cursor:pointer;border:solid 1px #EBEBEB;border-radius:4px;}.css-hnrfcf .highlight{margin:1em 0;}.css-hnrfcf .highlight pre{margin:0;}.css-hnrfcf .highlight .hll{background-color:#FDFDFD;}.css-hnrfcf .highlight .c{font-style:italic;color:#999999;}.css-hnrfcf .highlight .err{color:#F1403C;}.css-hnrfcf .highlight .k{font-weight:600;}.css-hnrfcf .highlight .o{font-weight:600;}.css-hnrfcf .highlight .cm{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cp{font-weight:600;color:#999999;}.css-hnrfcf .highlight .c1{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cs{font-style:italic;font-weight:600;color:#999999;}.css-hnrfcf .highlight .gd{color:#FF3366;}.css-hnrfcf .highlight .ge{font-style:italic;}.css-hnrfcf .highlight .gr{color:#F1403C;}.css-hnrfcf .highlight .gh{color:#999999;}.css-hnrfcf .highlight .gi{color:#12b370;}.css-hnrfcf .highlight .go{color:#808080;}.css-hnrfcf .highlight .gp{color:#646464;}.css-hnrfcf .highlight .gs{font-weight:600;}.css-hnrfcf .highlight .gu{color:#999999;}.css-hnrfcf .highlight .gt{color:#F1403C;}.css-hnrfcf .highlight .kc{font-weight:600;}.css-hnrfcf .highlight .kd{font-weight:600;}.css-hnrfcf .highlight .kn{font-weight:600;}.css-hnrfcf .highlight .kp{font-weight:600;}.css-hnrfcf .highlight .kr{font-weight:600;}.css-hnrfcf .highlight .kt{font-weight:600;color:#175199;}.css-hnrfcf .highlight .m{color:#0066FF;}.css-hnrfcf .highlight .s{color:#F1403C;}.css-hnrfcf .highlight .na{color:#0066FF;}.css-hnrfcf .highlight .nb{color:#0066FF;}.css-hnrfcf .highlight .nc{font-weight:600;color:#175199;}.css-hnrfcf .highlight .no{color:#0066FF;}.css-hnrfcf .highlight .ni{color:#5868D1;}.css-hnrfcf .highlight .ne{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nf{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nn{color:#646464;}.css-hnrfcf .highlight .nt{color:#175199;}.css-hnrfcf .highlight .nv{color:#0066FF;}.css-hnrfcf .highlight .ow{font-weight:600;}.css-hnrfcf .highlight .w{color:#BFBFBF;}.css-hnrfcf .highlight .mf{color:#0066FF;}.css-hnrfcf .highlight .mh{color:#0066FF;}.css-hnrfcf .highlight .mi{color:#0066FF;}.css-hnrfcf .highlight .mo{color:#0066FF;}.css-hnrfcf .highlight .sb{color:#F1403C;}.css-hnrfcf .highlight .sc{color:#F1403C;}.css-hnrfcf .highlight .sd{color:#F1403C;}.css-hnrfcf .highlight .s2{color:#F1403C;}.css-hnrfcf .highlight .se{color:#F1403C;}.css-hnrfcf .highlight .sh{color:#F1403C;}.css-hnrfcf .highlight .si{color:#F1403C;}.css-hnrfcf .highlight .sx{color:#F1403C;}.css-hnrfcf .highlight .sr{color:#C2A469;}.css-hnrfcf .highlight .s1{color:#F1403C;}.css-hnrfcf .highlight .ss{color:#F1403C;}.css-hnrfcf .highlight .bp{color:#999999;}.css-hnrfcf .highlight .vc{color:#0066FF;}.css-hnrfcf .highlight .vg{color:#0066FF;}.css-hnrfcf .highlight .vi{color:#0066FF;}.css-hnrfcf .highlight .il{color:#0066FF;}.css-hnrfcf .highlight::-webkit-scrollbar{width:6px;height:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal{background-color:rgba(18,18,18,0.5);border-radius:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal:hover{background-color:rgba(18,18,18,0.6);}.css-hnrfcf .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hnrfcf .LinkCard.old,.css-hnrfcf .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hnrfcf .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hnrfcf .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hnrfcf .LinkCard.new,.css-hnrfcf .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hnrfcf .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hnrfcf .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hnrfcf .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hnrfcf .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hnrfcf .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hnrfcf .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hnrfcf .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hnrfcf .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hnrfcf .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hnrfcf .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hnrfcf .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hnrfcf .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hnrfcf .FileLinkCard-info{margin-left:12px;}.css-hnrfcf .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hnrfcf .FileLinkCard-source{white-space:pre;}@-webkit-keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}@keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}</style>
<div class="RichText ztext Post-RichText css-hnrfcf" options="[object Object]">
<p data-pid="gOIEcpVg">這裡用到了Chrome里開發者工具里的Audit面板，其實背後調用的是lighthouse</p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-005a23e17b4ac8cf57550039d73a9f58_r.jpg" data-caption="" data-size="normal" data-rawwidth="1840" data-rawheight="910" class="origin_image zh-lightbox-thumb" width="1840" data-original="https://pic1.zhimg.com/v2-005a23e17b4ac8cf57550039d73a9f58_b.jpg" title="v2-005a23e17b4ac8cf57550039d73a9f58_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-005a23e17b4ac8cf57550039d73a9f58_r.jpg" data-caption="" data-size="normal" data-rawwidth="1840" data-rawheight="910" class="origin_image zh-lightbox-thumb lazy" width="1840" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='1840'%20height='910'&gt;&lt;/svg&gt;" data-actualsrc="https://pic1.zhimg.com/v2-005a23e17b4ac8cf57550039d73a9f58_b.jpg" title="v2-005a23e17b4ac8cf57550039d73a9f58_r"></figure>
<p data-pid="ImcPUEiD">選擇后直接點Run audits按鈕，直接生成報告，下面是對知乎網站生成的分析報告</p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-c6d5f98305d8ab38196f621c139a346d_r.jpg" data-caption="" data-size="normal" data-rawwidth="1490" data-rawheight="860" class="origin_image zh-lightbox-thumb" width="1490" data-original="https://pic2.zhimg.com/v2-c6d5f98305d8ab38196f621c139a346d_b.jpg" title="v2-c6d5f98305d8ab38196f621c139a346d_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-c6d5f98305d8ab38196f621c139a346d_r.jpg" data-caption="" data-size="normal" data-rawwidth="1490" data-rawheight="860" class="origin_image zh-lightbox-thumb lazy" width="1490" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='1490'%20height='860'&gt;&lt;/svg&gt;" data-actualsrc="https://pic2.zhimg.com/v2-c6d5f98305d8ab38196f621c139a346d_b.jpg" title="v2-c6d5f98305d8ab38196f621c139a346d_r"></figure>
<p data-pid="VK7WYfMz">可以看到性能和PWA兩項得分很低</p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-3347e700988cb4c42c8f0f1d68c2dca8_r.jpg" data-caption="" data-size="normal" data-rawwidth="1408" data-rawheight="852" class="origin_image zh-lightbox-thumb" width="1408" data-original="https://pic1.zhimg.com/v2-3347e700988cb4c42c8f0f1d68c2dca8_b.jpg" title="v2-3347e700988cb4c42c8f0f1d68c2dca8_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-3347e700988cb4c42c8f0f1d68c2dca8_r.jpg" data-caption="" data-size="normal" data-rawwidth="1408" data-rawheight="852" class="origin_image zh-lightbox-thumb lazy" width="1408" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='1408'%20height='852'&gt;&lt;/svg&gt;" data-actualsrc="https://pic1.zhimg.com/v2-3347e700988cb4c42c8f0f1d68c2dca8_b.jpg" title="v2-3347e700988cb4c42c8f0f1d68c2dca8_r"></figure>
<p data-pid="fSmdDEUQ">PWA裡都是紅叉，幾乎都沒做</p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-00bf2910a48dd7a4a771bd82576b7d26_r.jpg" data-caption="" data-size="normal" data-rawwidth="1452" data-rawheight="850" class="origin_image zh-lightbox-thumb" width="1452" data-original="https://pic3.zhimg.com/v2-00bf2910a48dd7a4a771bd82576b7d26_b.jpg" title="v2-00bf2910a48dd7a4a771bd82576b7d26_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-00bf2910a48dd7a4a771bd82576b7d26_r.jpg" data-caption="" data-size="normal" data-rawwidth="1452" data-rawheight="850" class="origin_image zh-lightbox-thumb lazy" width="1452" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='1452'%20height='850'&gt;&lt;/svg&gt;" data-actualsrc="https://pic3.zhimg.com/v2-00bf2910a48dd7a4a771bd82576b7d26_b.jpg" title="v2-00bf2910a48dd7a4a771bd82576b7d26_r"></figure>
<p data-pid="4hcoSlPO">剩下的我就不貼圖了，還是非常值得推薦的一款不用費心費力的工具。</p>
</div>
</div>
</div>
</article>
<h3 style="padding: 15px 0; margin-top:30px;">想了解更多關於 Facebook 與 Google 廣告投放？</h3>
<ul>
<li><a href="https://tenten.co/learning/google-ads-vs-facebook-ads/" data-wpel-link="internal" rel="noopener noreferrer">Google Ads 與 Facebook Ads：哪個更適合您的 2022 年廣告策略？</a></li>
<li><a href="https://university.tenten.co/t/adtech-header-bidding/1087/" data-wpel-link="external" rel="nofollow external noopener noreferrer">AD Tech - 廣告科技總整理</a></li>
</ul>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/software-engineering/front-end-dev/38148/topic-56411701/" data-wpel-link="internal">使用Chrome一鍵分析網站</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Lighthouse &#8211; Chrome 團隊開源的網站性能評測工具</title>
		<link>https://hypergrowths.com/software-engineering/front-end-dev/38144/topic-67833518/</link>
		
		<dc:creator><![CDATA[marketer]]></dc:creator>
		<pubDate>Tue, 30 Nov 2021 04:41:56 +0000</pubDate>
				<category><![CDATA[前端開發]]></category>
		<category><![CDATA[蟻點分享]]></category>
		<guid isPermaLink="false">https://hypergrowths.com/software-engineering/front-end-dev/38144/topic-67833518/</guid>

					<description><![CDATA[<p>Lighthouse 是一個開源的自動化工具，用於改進網路應用的品質。 開發者可以將其作為一個 Chrome 擴展程式運行，或從命令行運行。 Chrome 擴充程式提供了一個對使用者更友好的介面，方便讀取報告。 而命令列工具則允許...</p>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/software-engineering/front-end-dev/38144/topic-67833518/" data-wpel-link="internal">Lighthouse &#8211; Chrome 團隊開源的網站性能評測工具</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></description>
										<content:encoded><![CDATA[<article class="Post-Main Post-NormalMain" tabindex="-1">
<header class="Post-Header">
<h1 class="Post-Title">Lighthouse - Chrome 團隊開源的網站性能評測工具</h1>
<div class="Post-Author">
<div class="AuthorInfo" itemprop="author" itemscope="" itemtype="http://schema.org/Person">
<div class="AuthorInfo"><meta itemprop="name" content="Andot蚁点"><meta itemprop="image" content="https://pica.zhimg.com/v2-7fe6d22ba64328fccc88324b22d85299_l.jpg?source=172ae18b"><meta itemprop="url" content="https://www.zhihu.com/people/antsdot"><meta itemprop="zhihu:followerCount"></div>
</div>
</div>
</header>
<div class="Post-RichTextContainer">
<style data-emotion-css="1yuhvjn">.css-1yuhvjn{margin-top:16px;}</style>
<div class="css-1yuhvjn">
<style data-emotion-css="3jt6os">.css-3jt6os .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-3jt6os .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-3jt6os .FileLinkCard-info{margin-left:12px;}.css-3jt6os .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-3jt6os .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-3jt6os .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="1wr1m8">.css-1wr1m8 .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-1wr1m8 .LinkCard.new,.css-1wr1m8 .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-1wr1m8 .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-1wr1m8 .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-1wr1m8 .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-1wr1m8 .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-1wr1m8 .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-1wr1m8 .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-1wr1m8 .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-1wr1m8 .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-1wr1m8 .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-1wr1m8 .LinkCard.old,.css-1wr1m8 .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}</style>
<style data-emotion-css="hypxot">.css-hypxot .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hypxot .LinkCard.old,.css-hypxot .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hypxot .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hypxot .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hypxot .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hypxot .LinkCard.new,.css-hypxot .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hypxot .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hypxot .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hypxot .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hypxot .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hypxot .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hypxot .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hypxot .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hypxot .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hypxot .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hypxot .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hypxot .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hypxot .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hypxot .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hypxot .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hypxot .FileLinkCard-info{margin-left:12px;}.css-hypxot .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hypxot .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="hnrfcf animation-1sh55c5">.css-hnrfcf{word-break:break-word;line-height:1.6;}.css-hnrfcf a.UserLink-link{color:#175199;}.css-hnrfcf a.UserLink-link:hover{border-bottom:1px solid #175199;}.css-hnrfcf lazy[data-lazy-status]{background-color:#F6F6F6;}.css-hnrfcf lazy[data-lazy-status="ok"]{background-color:transparent;-webkit-animation:animation-1sh55c5 0.5s ease-in;animation:animation-1sh55c5 0.5s ease-in;}.css-hnrfcf > *:first-of-type{margin-top:0;}.css-hnrfcf > :last-child{margin-bottom:0;}.css-hnrfcf h1,.css-hnrfcf h2{clear:left;margin-top:calc((1.4em * 2) / 1.2);margin-bottom:calc(1.4em / 1.2);font-size:1.2em;line-height:1.5;font-weight:600;}.css-hnrfcf h3,.css-hnrfcf h4,.css-hnrfcf h5,.css-hnrfcf h6{clear:left;margin-top:calc((1.4em * 1.5) / 1.1);margin-bottom:calc(1.4em / 1.1);font-size:1.1em;line-height:1.5;font-weight:600;}.css-hnrfcf u{-webkit-text-decoration:none;text-decoration:none;border-bottom:1px dashed #808080;}.css-hnrfcf b{font-weight:600;}.css-hnrfcf sup{font-size:0.8em;}.css-hnrfcf sup[data-draft-type='reference']{color:#175199;}.css-hnrfcf a:focus{outline:none;-webkit-transition:box-shadow 0.3s;transition:box-shadow 0.3s;}html[data-focus-visible] .css-hnrfcf a:focus{box-shadow:0 0 0 2px #FFFFFF,0 0 0 4px rgba(0,102,255,0.3);}.css-hnrfcf a.ztext-link,.css-hnrfcf a.internal,.css-hnrfcf a.external{-webkit-text-decoration:none;text-decoration:none;cursor:pointer;border-bottom:1px solid #808080;}.css-hnrfcf a.ztext-link:hover,.css-hnrfcf a.internal:hover,.css-hnrfcf a.external:hover{color:#175199;border-bottom:1px solid #175199;}.css-hnrfcf a.ztext-link > .ellipsis::after,.css-hnrfcf a.internal > .ellipsis::after,.css-hnrfcf a.external > .ellipsis::after{content:'...';}.css-hnrfcf a.ztext-link > .invisible,.css-hnrfcf a.internal > .invisible,.css-hnrfcf a.external > .invisible{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;}.css-hnrfcf a.ztext-link u,.css-hnrfcf a.internal u,.css-hnrfcf a.external u{border:none;}.css-hnrfcf a.member_mention{color:#175199;}.css-hnrfcf a.member_mention:hover{border-bottom:1px solid #175199;}.css-hnrfcf p{margin:1.4em 0;}.css-hnrfcf p.ztext-empty-paragraph{margin:calc((2.8em- (1.4em * 2 + 1.6em)) / 2) 0;}.css-hnrfcf p.ztext-empty-paragraph + .ztext-empty-paragraph{margin:1.4em 0;}.css-hnrfcf hr{margin:4em auto;width:240px;max-width:100%;border:none;border-top:1px solid #D3D3D3;}.css-hnrfcf img[eeimg]{max-width:100%;vertical-align:middle;}.css-hnrfcf img[eeimg="1"]{margin:0 3px;display:inline-block;}.css-hnrfcf img[eeimg="2"]{margin:1.4em 0;display:block;}.css-hnrfcf blockquote{margin:1.4em 0;padding-left:1em;color:#646464;border-left:3px solid #D3D3D3;}.css-hnrfcf ol,.css-hnrfcf ul{margin:1.4em 0;padding:0;}.css-hnrfcf ol ol,.css-hnrfcf ul ol,.css-hnrfcf ol ul,.css-hnrfcf ul ul{margin:0;}.css-hnrfcf ol > ol,.css-hnrfcf ul > ol,.css-hnrfcf ol > ul,.css-hnrfcf ul > ul{display:table-row;}.css-hnrfcf ol > ol::before,.css-hnrfcf ul > ol::before,.css-hnrfcf ol > ul::before,.css-hnrfcf ul > ul::before{display:table-cell;content:'';}.css-hnrfcf ul{display:table;}.css-hnrfcf ul>li{display:table-row;list-style:none;}.css-hnrfcf ul>li::before{display:table-cell;content:'&bull;  ';white-space:pre;}.css-hnrfcf ol{display:table;counter-reset:ol;}.css-hnrfcf ol > li{display:table-row;list-style:none;}.css-hnrfcf ol > li::before{display:table-cell;text-align:right;counter-increment:ol;content:counter(ol) '. ';white-space:pre;}.css-hnrfcf ol ol{counter-reset:ol2;}.css-hnrfcf ol ol li::before{counter-increment:ol2;content:counter(ol2) '. ';}.css-hnrfcf ol ol ol{counter-reset:ol3;}.css-hnrfcf ol ol ol li::before{counter-increment:ol3;content:counter(ol3) '. ';}.css-hnrfcf ol ol ol ol{counter-reset:ol4;}.css-hnrfcf ol ol ol ol li::before{counter-increment:ol4;content:counter(ol4) '. ';}.css-hnrfcf figure{margin:1.4em 0;}.css-hnrfcf figure .content_image,.css-hnrfcf figure .origin_image{margin:0 auto;}.css-hnrfcf figure figcaption{margin-top:calc(0.6em / 0.9);padding:0 1em;font-size:0.9em;line-height:1.5;text-align:center;color:#999999;}.css-hnrfcf figure + figure{margin-top:calc(1.4em * 1.6);}.css-hnrfcf figure[data-size='small'],.css-hnrfcf figure:not([data-size]) > [data-size='small']{clear:both;}.css-hnrfcf figure[data-size='left'],.css-hnrfcf figure:not([data-size]) > [data-size='left']{float:left;margin:0 20px 20px 0;max-width:33%;}.css-hnrfcf figure[data-size='right'],.css-hnrfcf figure:not([data-size]) > [data-size='right']{float:right;margin:0 0 20px 20px;max-width:33%;}.css-hnrfcf figure[data-size='collapse']{margin-bottom:0;}.css-hnrfcf figure[data-size='collapse'] + figure{margin-top:0;}.css-hnrfcf .content_image,.css-hnrfcf .origin_image{display:block;max-width:100%;margin:1.4em auto;}.css-hnrfcf .content_image[data-size='small'],.css-hnrfcf .origin_image[data-size='small']{max-width:40%;}.css-hnrfcf .content_image.zh-lightbox-thumb,.css-hnrfcf .origin_image.zh-lightbox-thumb{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in;}.css-hnrfcf code{margin:0 2px;padding:3px 4px;border-radius:3px;font-size:0.9em;background-color:#F6F6F6;}.css-hnrfcf pre{margin:1.4em 0;padding:calc(0.8em / 0.9);font-size:0.9em;word-break:initial;word-wrap:initial;white-space:pre;overflow:auto;-webkit-overflow-scrolling:touch;background:#F6F6F6;border-radius:4px;}.css-hnrfcf pre code{margin:0;padding:0;font-size:inherit;border-radius:0;background-color:inherit;}.css-hnrfcf li pre{white-space:pre-wrap;}.css-hnrfcf table[data-draft-type='table']{border-collapse:collapse;font-size:15px;margin:1.4em auto;max-width:100%;table-layout:fixed;text-align:left;width:100%;}.css-hnrfcf table[data-draft-type='table'][data-size='small']{min-width:260px;width:40%;}.css-hnrfcf table[data-draft-type='table'][data-row-style='striped'] tr:nth-of-type(2n + 1){background:#F6F6F6;}.css-hnrfcf table[data-draft-type='table'] td,.css-hnrfcf table[data-draft-type='table'] th{border:1px solid #D3D3D3;line-height:24px;height:24px;padding:3px 12px;}.css-hnrfcf table[data-draft-type='table'] th{background:#EBEBEB;color:#121212;font-weight:500;}.css-hnrfcf .video-box,.css-hnrfcf .link-box{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin:1.4em 0;overflow:auto;white-space:normal;cursor:pointer;border:solid 1px #EBEBEB;border-radius:4px;}.css-hnrfcf .highlight{margin:1em 0;}.css-hnrfcf .highlight pre{margin:0;}.css-hnrfcf .highlight .hll{background-color:#FDFDFD;}.css-hnrfcf .highlight .c{font-style:italic;color:#999999;}.css-hnrfcf .highlight .err{color:#F1403C;}.css-hnrfcf .highlight .k{font-weight:600;}.css-hnrfcf .highlight .o{font-weight:600;}.css-hnrfcf .highlight .cm{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cp{font-weight:600;color:#999999;}.css-hnrfcf .highlight .c1{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cs{font-style:italic;font-weight:600;color:#999999;}.css-hnrfcf .highlight .gd{color:#FF3366;}.css-hnrfcf .highlight .ge{font-style:italic;}.css-hnrfcf .highlight .gr{color:#F1403C;}.css-hnrfcf .highlight .gh{color:#999999;}.css-hnrfcf .highlight .gi{color:#12b370;}.css-hnrfcf .highlight .go{color:#808080;}.css-hnrfcf .highlight .gp{color:#646464;}.css-hnrfcf .highlight .gs{font-weight:600;}.css-hnrfcf .highlight .gu{color:#999999;}.css-hnrfcf .highlight .gt{color:#F1403C;}.css-hnrfcf .highlight .kc{font-weight:600;}.css-hnrfcf .highlight .kd{font-weight:600;}.css-hnrfcf .highlight .kn{font-weight:600;}.css-hnrfcf .highlight .kp{font-weight:600;}.css-hnrfcf .highlight .kr{font-weight:600;}.css-hnrfcf .highlight .kt{font-weight:600;color:#175199;}.css-hnrfcf .highlight .m{color:#0066FF;}.css-hnrfcf .highlight .s{color:#F1403C;}.css-hnrfcf .highlight .na{color:#0066FF;}.css-hnrfcf .highlight .nb{color:#0066FF;}.css-hnrfcf .highlight .nc{font-weight:600;color:#175199;}.css-hnrfcf .highlight .no{color:#0066FF;}.css-hnrfcf .highlight .ni{color:#5868D1;}.css-hnrfcf .highlight .ne{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nf{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nn{color:#646464;}.css-hnrfcf .highlight .nt{color:#175199;}.css-hnrfcf .highlight .nv{color:#0066FF;}.css-hnrfcf .highlight .ow{font-weight:600;}.css-hnrfcf .highlight .w{color:#BFBFBF;}.css-hnrfcf .highlight .mf{color:#0066FF;}.css-hnrfcf .highlight .mh{color:#0066FF;}.css-hnrfcf .highlight .mi{color:#0066FF;}.css-hnrfcf .highlight .mo{color:#0066FF;}.css-hnrfcf .highlight .sb{color:#F1403C;}.css-hnrfcf .highlight .sc{color:#F1403C;}.css-hnrfcf .highlight .sd{color:#F1403C;}.css-hnrfcf .highlight .s2{color:#F1403C;}.css-hnrfcf .highlight .se{color:#F1403C;}.css-hnrfcf .highlight .sh{color:#F1403C;}.css-hnrfcf .highlight .si{color:#F1403C;}.css-hnrfcf .highlight .sx{color:#F1403C;}.css-hnrfcf .highlight .sr{color:#C2A469;}.css-hnrfcf .highlight .s1{color:#F1403C;}.css-hnrfcf .highlight .ss{color:#F1403C;}.css-hnrfcf .highlight .bp{color:#999999;}.css-hnrfcf .highlight .vc{color:#0066FF;}.css-hnrfcf .highlight .vg{color:#0066FF;}.css-hnrfcf .highlight .vi{color:#0066FF;}.css-hnrfcf .highlight .il{color:#0066FF;}.css-hnrfcf .highlight::-webkit-scrollbar{width:6px;height:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal{background-color:rgba(18,18,18,0.5);border-radius:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal:hover{background-color:rgba(18,18,18,0.6);}.css-hnrfcf .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hnrfcf .LinkCard.old,.css-hnrfcf .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hnrfcf .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hnrfcf .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hnrfcf .LinkCard.new,.css-hnrfcf .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hnrfcf .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hnrfcf .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hnrfcf .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hnrfcf .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hnrfcf .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hnrfcf .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hnrfcf .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hnrfcf .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hnrfcf .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hnrfcf .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hnrfcf .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hnrfcf .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hnrfcf .FileLinkCard-info{margin-left:12px;}.css-hnrfcf .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hnrfcf .FileLinkCard-source{white-space:pre;}@-webkit-keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}@keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}</style>
<div class="RichText ztext Post-RichText css-hnrfcf" options="[object Object]">
<p data-pid="2ZW62zvf"><a href="https://link.zhihu.com/?target=https%3A//github.com/GoogleChrome/lighthouse" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">Lighthouse</a> 是一個開源的自動化工具，用於改進網路應用的品質。 開發者可以將其作為一個 Chrome 擴展程式運行，或從命令行運行。 <a href="https://link.zhihu.com/?target=https%3A//chrome.google.com/webstore/detail/lighthouse/blipmdconlkpinefehnmjammfjpmpbjk" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">Chrome 擴充程式</a>提供了一個對使用者更友好的介面，方便讀取報告。 而命令行工具則允許開發者將 Lighthouse 整合到持續整合系統。</p>
<p data-pid="M3uM8w__">使用時，先提供一個需要審查的網址，它將針對此頁面運行一連串的測試，然後生成一個有關頁面性能的報告。</p>
<h2><b>使用 Chrome 擴充程式</b></h2>
<p data-pid="Ynur2MoP"><b>安裝：</b>從 Chrome 應用商店安裝 <a href="https://link.zhihu.com/?target=https%3A//chrome.google.com/webstore/detail/lighthouse/blipmdconlkpinefehnmjammfjpmpbjk" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">延伸程式</a></p>
<p data-pid="khoLNLIg"><b>運行：</b>點擊 Generate report 按鈕以針對當前打開的頁面運行 Lighthouse 測試</p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-dcf04e5e765e2a9553ac8ac1150c14c4_r.jpg" data-caption="" data-size="normal" data-rawwidth="696" data-rawheight="394" class="origin_image zh-lightbox-thumb" width="696" data-original="https://pic1.zhimg.com/v2-dcf04e5e765e2a9553ac8ac1150c14c4_b.jpg" title="v2-dcf04e5e765e2a9553ac8ac1150c14c4_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-dcf04e5e765e2a9553ac8ac1150c14c4_r.jpg" data-caption="" data-size="normal" data-rawwidth="696" data-rawheight="394" class="origin_image zh-lightbox-thumb lazy" width="696" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='696'%20height='394'&gt;&lt;/svg&gt;" data-actualsrc="https://pic1.zhimg.com/v2-dcf04e5e765e2a9553ac8ac1150c14c4_b.jpg" title="v2-dcf04e5e765e2a9553ac8ac1150c14c4_r"></figure>
<h2><b>使用命令行工具</b></h2>
<p data-pid="jNOVZvov">安裝 <a href="https://link.zhihu.com/?target=https%3A//nodejs.org/" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">Node</a>，需要版本 5 或更高版本。</p>
<p data-pid="XedZSANv">安裝 Lighthouse 作為一個全域節點模組。</p>
<div class="highlight">
<pre><code class="language-text">npm install -g lighthouse</code></pre>
</div>
<p data-pid="AWwWWw_-">針對一個頁面運行 Lighthouse 審查。</p>
<div class="highlight">
<pre><code class="language-text">lighthouse https://airhorner.com/</code></pre>
</div>
<p data-pid="w6SEq_Jj">傳遞 --help 標誌以查看可用的輸入和輸出選項。</p>
<div class="highlight">
<pre><code class="language-text">lighthouse --help</code></pre>
</div>
<h2><b>查看報告</b></h2>
<p data-pid="Jl3hHEne">Lighthouse 能夠生成一份 JSON 或 HTML 報告：</p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-8af2fd9fb2f673a690e0b98d92f0b8ed_r.jpg" data-caption="" data-size="normal" data-rawwidth="1744" data-rawheight="1608" class="origin_image zh-lightbox-thumb" width="1744" data-original="https://pic2.zhimg.com/v2-8af2fd9fb2f673a690e0b98d92f0b8ed_b.jpg" title="v2-8af2fd9fb2f673a690e0b98d92f0b8ed_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-8af2fd9fb2f673a690e0b98d92f0b8ed_r.jpg" data-caption="" data-size="normal" data-rawwidth="1744" data-rawheight="1608" class="origin_image zh-lightbox-thumb lazy" width="1744" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='1744'%20height='1608'&gt;&lt;/svg&gt;" data-actualsrc="https://pic2.zhimg.com/v2-8af2fd9fb2f673a690e0b98d92f0b8ed_b.jpg" title="v2-8af2fd9fb2f673a690e0b98d92f0b8ed_r"></figure>
<hr>
<blockquote data-pid="FwmQl0dP"><p><b>Github：</b></p></blockquote>
<p data-pid="S98DFqrW"><a href="https://link.zhihu.com/?target=https%3A//github.com/GoogleChrome/lighthouse" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">GoogleChrome/lighthouse</a></p>
</div>
</div>
</div>
</article>
<h3 style="padding: 15px 0; margin-top:30px;">想了解更多關於 Facebook 與 Google 廣告投放？</h3>
<ul>
<li><a href="https://tenten.co/learning/google-ads-vs-facebook-ads/" data-wpel-link="internal" rel="noopener noreferrer">Google Ads 與 Facebook Ads：哪個更適合您的 2022 年廣告策略？</a></li>
<li><a href="https://university.tenten.co/t/adtech-header-bidding/1087/" data-wpel-link="external" rel="nofollow external noopener noreferrer">AD Tech - 廣告科技總整理</a></li>
</ul>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/software-engineering/front-end-dev/38144/topic-67833518/" data-wpel-link="internal">Lighthouse &#8211; Chrome 團隊開源的網站性能評測工具</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>頁面審核工具 Chrome Lighthouse 簡介</title>
		<link>https://hypergrowths.com/software-engineering/front-end-dev/38138/topic-71239403/</link>
		
		<dc:creator><![CDATA[marketer]]></dc:creator>
		<pubDate>Tue, 30 Nov 2021 04:41:33 +0000</pubDate>
				<category><![CDATA[前端開發]]></category>
		<guid isPermaLink="false">https://hypergrowths.com/software-engineering/front-end-dev/38138/topic-71239403/</guid>

					<description><![CDATA[<p>作者：Bolaji Ayodeji 翻譯：瘋狂的技術宅 原文：https://www.freecodecamp.org/news/introduction-to-chrome-lighthouse/ 未經允許嚴禁轉載 Chrome Lighthouse 已經存在了一段時間了，但如果我要求你解釋一下它能...</p>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/software-engineering/front-end-dev/38138/topic-71239403/" data-wpel-link="internal">頁面審核工具 Chrome Lighthouse 簡介</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></description>
										<content:encoded><![CDATA[<article class="Post-Main Post-NormalMain" tabindex="-1">
<header class="Post-Header">
<h1 class="Post-Title">頁面審核工具 Chrome Lighthouse 簡介</h1>
<div class="Post-Author">
<div class="AuthorInfo" itemprop="author" itemscope="" itemtype="http://schema.org/Person">
<div class="AuthorInfo"><meta itemprop="name" content="前端先锋"><meta itemprop="image" content="https://pic3.zhimg.com/v2-c34b9750421bae17256cca4f0208125a_l.jpg?source=172ae18b"><meta itemprop="url" content="https://www.zhihu.com/people/lin-ju-jia-de-mao-89"><meta itemprop="zhihu:followerCount"></div>
</div>
</div>
</header>
<div class="Post-RichTextContainer">
<style data-emotion-css="1yuhvjn">.css-1yuhvjn{margin-top:16px;}</style>
<div class="css-1yuhvjn">
<style data-emotion-css="3jt6os">.css-3jt6os .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-3jt6os .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-3jt6os .FileLinkCard-info{margin-left:12px;}.css-3jt6os .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-3jt6os .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-3jt6os .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="1wr1m8">.css-1wr1m8 .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-1wr1m8 .LinkCard.new,.css-1wr1m8 .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-1wr1m8 .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-1wr1m8 .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-1wr1m8 .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-1wr1m8 .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-1wr1m8 .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-1wr1m8 .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-1wr1m8 .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-1wr1m8 .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-1wr1m8 .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-1wr1m8 .LinkCard.old,.css-1wr1m8 .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}</style>
<style data-emotion-css="hypxot">.css-hypxot .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hypxot .LinkCard.old,.css-hypxot .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hypxot .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hypxot .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hypxot .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hypxot .LinkCard.new,.css-hypxot .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hypxot .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hypxot .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hypxot .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hypxot .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hypxot .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hypxot .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hypxot .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hypxot .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hypxot .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hypxot .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hypxot .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hypxot .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hypxot .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hypxot .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hypxot .FileLinkCard-info{margin-left:12px;}.css-hypxot .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hypxot .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="hnrfcf animation-1sh55c5">.css-hnrfcf{word-break:break-word;line-height:1.6;}.css-hnrfcf a.UserLink-link{color:#175199;}.css-hnrfcf a.UserLink-link:hover{border-bottom:1px solid #175199;}.css-hnrfcf lazy[data-lazy-status]{background-color:#F6F6F6;}.css-hnrfcf lazy[data-lazy-status="ok"]{background-color:transparent;-webkit-animation:animation-1sh55c5 0.5s ease-in;animation:animation-1sh55c5 0.5s ease-in;}.css-hnrfcf > *:first-of-type{margin-top:0;}.css-hnrfcf > :last-child{margin-bottom:0;}.css-hnrfcf h1,.css-hnrfcf h2{clear:left;margin-top:calc((1.4em * 2) / 1.2);margin-bottom:calc(1.4em / 1.2);font-size:1.2em;line-height:1.5;font-weight:600;}.css-hnrfcf h3,.css-hnrfcf h4,.css-hnrfcf h5,.css-hnrfcf h6{clear:left;margin-top:calc((1.4em * 1.5) / 1.1);margin-bottom:calc(1.4em / 1.1);font-size:1.1em;line-height:1.5;font-weight:600;}.css-hnrfcf u{-webkit-text-decoration:none;text-decoration:none;border-bottom:1px dashed #808080;}.css-hnrfcf b{font-weight:600;}.css-hnrfcf sup{font-size:0.8em;}.css-hnrfcf sup[data-draft-type='reference']{color:#175199;}.css-hnrfcf a:focus{outline:none;-webkit-transition:box-shadow 0.3s;transition:box-shadow 0.3s;}html[data-focus-visible] .css-hnrfcf a:focus{box-shadow:0 0 0 2px #FFFFFF,0 0 0 4px rgba(0,102,255,0.3);}.css-hnrfcf a.ztext-link,.css-hnrfcf a.internal,.css-hnrfcf a.external{-webkit-text-decoration:none;text-decoration:none;cursor:pointer;border-bottom:1px solid #808080;}.css-hnrfcf a.ztext-link:hover,.css-hnrfcf a.internal:hover,.css-hnrfcf a.external:hover{color:#175199;border-bottom:1px solid #175199;}.css-hnrfcf a.ztext-link > .ellipsis::after,.css-hnrfcf a.internal > .ellipsis::after,.css-hnrfcf a.external > .ellipsis::after{content:'...';}.css-hnrfcf a.ztext-link > .invisible,.css-hnrfcf a.internal > .invisible,.css-hnrfcf a.external > .invisible{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;}.css-hnrfcf a.ztext-link u,.css-hnrfcf a.internal u,.css-hnrfcf a.external u{border:none;}.css-hnrfcf a.member_mention{color:#175199;}.css-hnrfcf a.member_mention:hover{border-bottom:1px solid #175199;}.css-hnrfcf p{margin:1.4em 0;}.css-hnrfcf p.ztext-empty-paragraph{margin:calc((2.8em- (1.4em * 2 + 1.6em)) / 2) 0;}.css-hnrfcf p.ztext-empty-paragraph + .ztext-empty-paragraph{margin:1.4em 0;}.css-hnrfcf hr{margin:4em auto;width:240px;max-width:100%;border:none;border-top:1px solid #D3D3D3;}.css-hnrfcf img[eeimg]{max-width:100%;vertical-align:middle;}.css-hnrfcf img[eeimg="1"]{margin:0 3px;display:inline-block;}.css-hnrfcf img[eeimg="2"]{margin:1.4em 0;display:block;}.css-hnrfcf blockquote{margin:1.4em 0;padding-left:1em;color:#646464;border-left:3px solid #D3D3D3;}.css-hnrfcf ol,.css-hnrfcf ul{margin:1.4em 0;padding:0;}.css-hnrfcf ol ol,.css-hnrfcf ul ol,.css-hnrfcf ol ul,.css-hnrfcf ul ul{margin:0;}.css-hnrfcf ol > ol,.css-hnrfcf ul > ol,.css-hnrfcf ol > ul,.css-hnrfcf ul > ul{display:table-row;}.css-hnrfcf ol > ol::before,.css-hnrfcf ul > ol::before,.css-hnrfcf ol > ul::before,.css-hnrfcf ul > ul::before{display:table-cell;content:'';}.css-hnrfcf ul{display:table;}.css-hnrfcf ul>li{display:table-row;list-style:none;}.css-hnrfcf ul>li::before{display:table-cell;content:'&bull;  ';white-space:pre;}.css-hnrfcf ol{display:table;counter-reset:ol;}.css-hnrfcf ol > li{display:table-row;list-style:none;}.css-hnrfcf ol > li::before{display:table-cell;text-align:right;counter-increment:ol;content:counter(ol) '. ';white-space:pre;}.css-hnrfcf ol ol{counter-reset:ol2;}.css-hnrfcf ol ol li::before{counter-increment:ol2;content:counter(ol2) '. ';}.css-hnrfcf ol ol ol{counter-reset:ol3;}.css-hnrfcf ol ol ol li::before{counter-increment:ol3;content:counter(ol3) '. ';}.css-hnrfcf ol ol ol ol{counter-reset:ol4;}.css-hnrfcf ol ol ol ol li::before{counter-increment:ol4;content:counter(ol4) '. ';}.css-hnrfcf figure{margin:1.4em 0;}.css-hnrfcf figure .content_image,.css-hnrfcf figure .origin_image{margin:0 auto;}.css-hnrfcf figure figcaption{margin-top:calc(0.6em / 0.9);padding:0 1em;font-size:0.9em;line-height:1.5;text-align:center;color:#999999;}.css-hnrfcf figure + figure{margin-top:calc(1.4em * 1.6);}.css-hnrfcf figure[data-size='small'],.css-hnrfcf figure:not([data-size]) > [data-size='small']{clear:both;}.css-hnrfcf figure[data-size='left'],.css-hnrfcf figure:not([data-size]) > [data-size='left']{float:left;margin:0 20px 20px 0;max-width:33%;}.css-hnrfcf figure[data-size='right'],.css-hnrfcf figure:not([data-size]) > [data-size='right']{float:right;margin:0 0 20px 20px;max-width:33%;}.css-hnrfcf figure[data-size='collapse']{margin-bottom:0;}.css-hnrfcf figure[data-size='collapse'] + figure{margin-top:0;}.css-hnrfcf .content_image,.css-hnrfcf .origin_image{display:block;max-width:100%;margin:1.4em auto;}.css-hnrfcf .content_image[data-size='small'],.css-hnrfcf .origin_image[data-size='small']{max-width:40%;}.css-hnrfcf .content_image.zh-lightbox-thumb,.css-hnrfcf .origin_image.zh-lightbox-thumb{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in;}.css-hnrfcf code{margin:0 2px;padding:3px 4px;border-radius:3px;font-size:0.9em;background-color:#F6F6F6;}.css-hnrfcf pre{margin:1.4em 0;padding:calc(0.8em / 0.9);font-size:0.9em;word-break:initial;word-wrap:initial;white-space:pre;overflow:auto;-webkit-overflow-scrolling:touch;background:#F6F6F6;border-radius:4px;}.css-hnrfcf pre code{margin:0;padding:0;font-size:inherit;border-radius:0;background-color:inherit;}.css-hnrfcf li pre{white-space:pre-wrap;}.css-hnrfcf table[data-draft-type='table']{border-collapse:collapse;font-size:15px;margin:1.4em auto;max-width:100%;table-layout:fixed;text-align:left;width:100%;}.css-hnrfcf table[data-draft-type='table'][data-size='small']{min-width:260px;width:40%;}.css-hnrfcf table[data-draft-type='table'][data-row-style='striped'] tr:nth-of-type(2n + 1){background:#F6F6F6;}.css-hnrfcf table[data-draft-type='table'] td,.css-hnrfcf table[data-draft-type='table'] th{border:1px solid #D3D3D3;line-height:24px;height:24px;padding:3px 12px;}.css-hnrfcf table[data-draft-type='table'] th{background:#EBEBEB;color:#121212;font-weight:500;}.css-hnrfcf .video-box,.css-hnrfcf .link-box{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin:1.4em 0;overflow:auto;white-space:normal;cursor:pointer;border:solid 1px #EBEBEB;border-radius:4px;}.css-hnrfcf .highlight{margin:1em 0;}.css-hnrfcf .highlight pre{margin:0;}.css-hnrfcf .highlight .hll{background-color:#FDFDFD;}.css-hnrfcf .highlight .c{font-style:italic;color:#999999;}.css-hnrfcf .highlight .err{color:#F1403C;}.css-hnrfcf .highlight .k{font-weight:600;}.css-hnrfcf .highlight .o{font-weight:600;}.css-hnrfcf .highlight .cm{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cp{font-weight:600;color:#999999;}.css-hnrfcf .highlight .c1{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cs{font-style:italic;font-weight:600;color:#999999;}.css-hnrfcf .highlight .gd{color:#FF3366;}.css-hnrfcf .highlight .ge{font-style:italic;}.css-hnrfcf .highlight .gr{color:#F1403C;}.css-hnrfcf .highlight .gh{color:#999999;}.css-hnrfcf .highlight .gi{color:#12b370;}.css-hnrfcf .highlight .go{color:#808080;}.css-hnrfcf .highlight .gp{color:#646464;}.css-hnrfcf .highlight .gs{font-weight:600;}.css-hnrfcf .highlight .gu{color:#999999;}.css-hnrfcf .highlight .gt{color:#F1403C;}.css-hnrfcf .highlight .kc{font-weight:600;}.css-hnrfcf .highlight .kd{font-weight:600;}.css-hnrfcf .highlight .kn{font-weight:600;}.css-hnrfcf .highlight .kp{font-weight:600;}.css-hnrfcf .highlight .kr{font-weight:600;}.css-hnrfcf .highlight .kt{font-weight:600;color:#175199;}.css-hnrfcf .highlight .m{color:#0066FF;}.css-hnrfcf .highlight .s{color:#F1403C;}.css-hnrfcf .highlight .na{color:#0066FF;}.css-hnrfcf .highlight .nb{color:#0066FF;}.css-hnrfcf .highlight .nc{font-weight:600;color:#175199;}.css-hnrfcf .highlight .no{color:#0066FF;}.css-hnrfcf .highlight .ni{color:#5868D1;}.css-hnrfcf .highlight .ne{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nf{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nn{color:#646464;}.css-hnrfcf .highlight .nt{color:#175199;}.css-hnrfcf .highlight .nv{color:#0066FF;}.css-hnrfcf .highlight .ow{font-weight:600;}.css-hnrfcf .highlight .w{color:#BFBFBF;}.css-hnrfcf .highlight .mf{color:#0066FF;}.css-hnrfcf .highlight .mh{color:#0066FF;}.css-hnrfcf .highlight .mi{color:#0066FF;}.css-hnrfcf .highlight .mo{color:#0066FF;}.css-hnrfcf .highlight .sb{color:#F1403C;}.css-hnrfcf .highlight .sc{color:#F1403C;}.css-hnrfcf .highlight .sd{color:#F1403C;}.css-hnrfcf .highlight .s2{color:#F1403C;}.css-hnrfcf .highlight .se{color:#F1403C;}.css-hnrfcf .highlight .sh{color:#F1403C;}.css-hnrfcf .highlight .si{color:#F1403C;}.css-hnrfcf .highlight .sx{color:#F1403C;}.css-hnrfcf .highlight .sr{color:#C2A469;}.css-hnrfcf .highlight .s1{color:#F1403C;}.css-hnrfcf .highlight .ss{color:#F1403C;}.css-hnrfcf .highlight .bp{color:#999999;}.css-hnrfcf .highlight .vc{color:#0066FF;}.css-hnrfcf .highlight .vg{color:#0066FF;}.css-hnrfcf .highlight .vi{color:#0066FF;}.css-hnrfcf .highlight .il{color:#0066FF;}.css-hnrfcf .highlight::-webkit-scrollbar{width:6px;height:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal{background-color:rgba(18,18,18,0.5);border-radius:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal:hover{background-color:rgba(18,18,18,0.6);}.css-hnrfcf .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hnrfcf .LinkCard.old,.css-hnrfcf .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hnrfcf .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hnrfcf .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hnrfcf .LinkCard.new,.css-hnrfcf .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hnrfcf .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hnrfcf .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hnrfcf .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hnrfcf .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hnrfcf .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hnrfcf .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hnrfcf .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hnrfcf .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hnrfcf .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hnrfcf .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hnrfcf .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hnrfcf .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hnrfcf .FileLinkCard-info{margin-left:12px;}.css-hnrfcf .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hnrfcf .FileLinkCard-source{white-space:pre;}@-webkit-keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}@keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}</style>
<div class="RichText ztext Post-RichText css-hnrfcf" options="[object Object]">
<blockquote data-pid="K_RFgi3r"><p> 作者：Bolaji Ayodeji<br /> 翻譯：瘋狂的技術宅<br />原文：<a href="https://link.zhihu.com/?target=https%3A//www.freecodecamp.org/news/introduction-to-chrome-lighthouse/" class=" external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external"><span class="invisible">https://www.</span> <span class="visible">freecodecamp.org/news/i</span><span class="invisible">ntroduction-to-chrome-lighthouse/</span></a><br /><b>未經允許嚴禁轉載</b></p></blockquote>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-c02230c42a14e687d1b24935b946686b_r.jpg" data-caption="" data-size="normal" data-rawwidth="800" data-rawheight="324" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic4.zhimg.com/v2-c02230c42a14e687d1b24935b946686b_b.jpg" title="v2-c02230c42a14e687d1b24935b946686b_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-c02230c42a14e687d1b24935b946686b_r.jpg" data-caption="" data-size="normal" data-rawwidth="800" data-rawheight="324" class="origin_image zh-lightbox-thumb lazy" width="800" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='800'%20height='324'&gt;&lt;/svg&gt;" data-actualsrc="https://pic4.zhimg.com/v2-c02230c42a14e687d1b24935b946686b_b.jpg" title="v2-c02230c42a14e687d1b24935b946686b_r"></figure>
<p class="ztext-empty-paragraph"></p>
<p data-pid="NrBbvrQr">Chrome Lighthouse 已經存在了一段時間了，但如果我要求你解釋一下它能做什麼，你能解釋清楚嗎？</p>
<p data-pid="5-wnj-Bk">我發現許多 Web 開發人員包括初學者，都沒有聽說過這個工具，而那些尚未嘗試過的人，一點也不酷 。</p>
<p data-pid="uI4ZcqLh">在本文中，我將向你介紹 Chrome Lighthouse 的作用以及如何使用它。</p>
<p data-pid="4dy3Oqkh">讓我們開始吧  </p>
<hr>
<blockquote data-pid="kjLrqvkP"><p><i>根據維琪百科，<b>lighthouse</b>是一座塔樓、建築物或其他類型的結構，它用燈和鏡頭系統發出光線，作為海上或內陸水道船舶的導航設備</i>。</p></blockquote>
<p data-pid="DExPjt8v">好吧，讓我們把它變成一個技術術語;</p>
<blockquote data-pid="2XJlVTEl"><p><i>Lighthouse 是一個塔樓，建築物或其他類型的結構，它在 Chrome 開發者工具的"審核"面板下的系統發出光線，並作為開發人員的指南</i></p></blockquote>
<p data-pid="kxop1Xso">有道理嗎？ </p>
<p data-pid="tn1ahXrh">好吧，Lighthouse 是 Google 開發的一款工具，用於分析網路應用和網頁，收集現代性能指標並提供對開發人員最佳實踐的意見。</p>
<p data-pid="MoLLLdsG">可以將 Lighthouse 看作是汽車中用來檢查和平衡汽車速度限制的車速表。</p>
<p data-pid="VvRWfspS">一般情況下 Lighthouse 與開發最佳實踐和性能指標一起使用。 它在 Web 應用上運行檢查，併為你提供有關錯誤的反饋、低於標準的實踐、更好的性能提示以及如何解決這些問題。</p>
<p data-pid="AljQvtho">根據Google Developers Docs上的描述</p>
<blockquote data-pid="RUcEIJcp"><p><i>Lighthouse 是一種開源的自動化工具，用於提高網頁品質。 你可以在任何網頁上運行它。 它能夠針對性能、可訪問性、漸進式 Web 應用等進行審核。</i><br /><i>你可以在 Chrome DevTools 中從命令行運行 Lighthouse，也可以作為 Node.js 模組運行。 當你向 Lighthouse 提供了一個 URL 來進行審核時，它會針對該頁面運行一系列審核，然後生成一個關於該頁面執行情況的報告。 這份報告可以作為如何改進頁面的指標。 每次審核都會產生一份參考文檔，解釋了這些審核為什麼重要，以及如何解決等內容。</i></p></blockquote>
<p data-pid="AfyRER80">這幾乎都與 Lighthouse 有關，它會審核 Web 應用的 URL 並根據 Web 標準和開發人員最佳實踐生成一份報告，告訴你 Web 應用的糟糕程度。 報告的每個部分還附有文檔，說明你的應用哪些部分已經通過審核，為什麼你應該改進應用的某一部分以及如何去解決它。</p>
<p data-pid="aKKZ0W9h">以下是此部落格<a href="https://link.zhihu.com/?target=https%3A//bolajiayodehi.com/" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">https://bolajiayodeji.com</a>的lighthouse審核報告演示</p>
<p class="ztext-empty-paragraph"></p>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-ebe20bd5b77167a3298285e8a245d509_r.jpg" data-caption="" data-size="normal" data-rawwidth="798" data-rawheight="455" class="origin_image zh-lightbox-thumb" width="798" data-original="https://pic2.zhimg.com/v2-ebe20bd5b77167a3298285e8a245d509_b.jpg" title="v2-ebe20bd5b77167a3298285e8a245d509_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-ebe20bd5b77167a3298285e8a245d509_r.jpg" data-caption="" data-size="normal" data-rawwidth="798" data-rawheight="455" class="origin_image zh-lightbox-thumb lazy" width="798" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='798'%20height='455'&gt;&lt;/svg&gt;" data-actualsrc="https://pic2.zhimg.com/v2-ebe20bd5b77167a3298285e8a245d509_b.jpg" title="v2-ebe20bd5b77167a3298285e8a245d509_r"></figure>
<p class="ztext-empty-paragraph"></p>
<p data-pid="v1Rl93Zh">左：我的部落格 右：Lighthouse 審核報告</p>
<p data-pid="9ViQPlpr">很酷吧？ </p>
<p data-pid="2pwtFTwP">應該注意的是，在我的第一次審計中，並沒有得到這樣的好成績。 所以我用第一份報告來修復和改善自己程式的性能和品質。</p>
<p data-pid="VUEuPnhu">這是 Lighthouse 目的：它識別和修復影響你網站性能、可訪問性和用戶體驗的常見問題。</p>
<p class="ztext-empty-paragraph"></p>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-33fb762e1917537cd7e9f71d5b275c90_r.jpg" data-caption="" data-size="normal" data-rawwidth="464" data-rawheight="375" class="origin_image zh-lightbox-thumb" width="464" data-original="https://pic1.zhimg.com/v2-33fb762e1917537cd7e9f71d5b275c90_b.jpg" title="v2-33fb762e1917537cd7e9f71d5b275c90_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-33fb762e1917537cd7e9f71d5b275c90_r.jpg" data-caption="" data-size="normal" data-rawwidth="464" data-rawheight="375" class="origin_image zh-lightbox-thumb lazy" width="464" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='464'%20height='375'&gt;&lt;/svg&gt;" data-actualsrc="https://pic1.zhimg.com/v2-33fb762e1917537cd7e9f71d5b275c90_b.jpg" title="v2-33fb762e1917537cd7e9f71d5b275c90_r"></figure>
<hr>
<p data-pid="XKRL-6_V">現在，讓我們進入到有趣的部分，<b>如何開始使用它！！</b></p>
<p data-pid="3fTkvZOT">LightHouse 有三種工作流程</p>
<ul>
<li data-pid="5wRCqb1v">Chrome 開發者工具</li>
<li data-pid="vjvKbNPn">命令列 （Node.js）</li>
<li data-pid="8luIt3AI">Chrome 擴充程式</li>
</ul>
<p data-pid="oGWNLV2k">我個人更喜歡在 Dev Tools 中使用 LightHouse。 使用擴展程式沒有意義，因為開發工具和擴展程式在同一個 Chrome 瀏覽器中工作，我們的偏好不同，你可以選擇最適合自己的方法。</p>
<p data-pid="uhJuIlCe">Lighthouse 在添加到 Chrome DevTools 之前首先只能使用 Chrome 擴展程式。</p>
<p data-pid="KAcI3y5-">在命令行上使用 lighthouse 也很酷，（對於極客來說 ）</p>
<p data-pid="nTBfvMIZ"><i>讓我們開始吧!!!</i></p>
<hr>
<h3>[1] 在Chrome DevTools 中運行 Lighthouse</h3>
<ul>
<li data-pid="n0BdH_VP">下載谷歌瀏覽器網頁瀏覽器<a href="https://link.zhihu.com/?target=https%3A//www.google.com/chrome/browser/desktop/" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">這個處</a></li>
</ul>
<blockquote data-pid="tv7knmvY"><p><i>注意：Lighthouse 只能在桌面上運行</i></p></blockquote>
<ul>
<li data-pid="bhK1XMvn">轉到你要在Google Chrome中審核的URL。</li>
</ul>
<blockquote data-pid="-bz-Kv49"><p><i>你可以審核網路上的任何 URL。</i></p></blockquote>
<ul>
<li data-pid="ErltMuKO">打開 Chrome DevTools</li>
</ul>
<div class="highlight">
<pre><code class="language-bash"><span class="o">(</span>Mac<span class="o">)</span>
<span class="o">(</span>Windows, Linux, Chrome OS<span class="o">)</span>.</code></pre>
</div>
<ul>
<li data-pid="IzMim_gc">按兩下 <b>Audits</b> 面板</li>
</ul>
<p class="ztext-empty-paragraph"></p>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-2f3a438d50190222667f79ce23116028_r.jpg" data-caption="" data-size="normal" data-rawwidth="799" data-rawheight="430" class="origin_image zh-lightbox-thumb" width="799" data-original="https://pic1.zhimg.com/v2-2f3a438d50190222667f79ce23116028_b.jpg" title="v2-2f3a438d50190222667f79ce23116028_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-2f3a438d50190222667f79ce23116028_r.jpg" data-caption="" data-size="normal" data-rawwidth="799" data-rawheight="430" class="origin_image zh-lightbox-thumb lazy" width="799" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='799'%20height='430'&gt;&lt;/svg&gt;" data-actualsrc="https://pic1.zhimg.com/v2-2f3a438d50190222667f79ce23116028_b.jpg" title="v2-2f3a438d50190222667f79ce23116028_r"></figure>
<p class="ztext-empty-paragraph"></p>
<p data-pid="OGwxA686">左側是將被審核的頁面，這是我的部落格 。 右側是 Chrome DevTools 的 <b>Audits 面板</b>，現在由 Lighthouse 提供支援</p>
<ul>
<li data-pid="kvD552-s">點擊 <b>Run audits</b></li>
</ul>
<blockquote data-pid="Ifl8Fx5a"><p><i>DevTools 顯示審計類別清單。 確保將它們全部被選中。 如果你想個人化要審核的哪個部分，可以通過選中要審核的類別來設置。</i></p></blockquote>
<ul>
<li data-pid="w-ynzTDU">60 至 90 秒後 —— 根據你的網速，Lighthouse 會在頁面上為你提供報告。</li>
</ul>
<blockquote data-pid="m6TxCmo7"><p><i>並非只有網速和預安裝的擴展可能會影響lighthouse審核。 為了獲得更好的體驗，請在 <b>Icognito 模式</b>下進行審核來避免所有的干擾</i></p></blockquote>
<h3>[2] 在命令行中運行lighthouse</h3>
<ul>
<li data-pid="8TZaQVre">下載<a href="https://link.zhihu.com/?target=https%3A//www.google.com/chrome/browser/desktop/" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">谷歌 Chrome 瀏覽器</a></li>
<li data-pid="hjzbigrV">下載 <a href="https://link.zhihu.com/?target=https%3A//nodejs.org/en/" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">Node.js</a>，如果已安裝，請跳過此步驟！</li>
<li data-pid="W2fyshue">安裝 Lighthouse</li>
</ul>
<div class="highlight">
<pre><code class="language-bash">npm install -g lighthouse
<span class="c1"># or use yarn:</span>
yarn global add lighthouse</code></pre>
</div>
<blockquote data-pid="QuvWjKps"><p><i>用 -g 選項將其安裝為全域模組。</i></p></blockquote>
<ul>
<li data-pid="HSUOgyqj">運行審核</li>
</ul>
<div class="highlight">
<pre><code class="language-bash">lighthouse &lt;url&gt;</code></pre>
</div>
<p data-pid="FCDiyGhJ">例如：</p>
<div class="highlight">
<pre><code class="language-bash">lighthouse https://bolajiayodeji.com/</code></pre>
</div>
<p data-pid="7qUHFfQp">Lighthouse 預設生成 HTML 格式的報告檔。 你可以通過添加控制選項來控制輸出的格式。</p>
<p data-pid="1uF24ZY3">報告能夠以 <b>HTML</b> 或 <b>JSON</b> 格式顯示。</p>
<p data-pid="0n6SZeh8">輸出樣本：</p>
<div class="highlight">
<pre><code class="language-bash">lighthouse
<span class="c1"># saves <code>./&lt;HOST&gt;_&lt;DATE&gt;.report.html</code></span>

lighthouse --output json
<span class="c1"># json output sent to stdout</span>

lighthouse --output html --output-path ./report.html
<span class="c1"># saves <code>./report.html</code></span><span class="c1"># NOTE: specifying an output path with multiple formats ignores your specified extension for *ALL* formats</span>
lighthouse --output json --output html --output-path ./myfile.json
<span class="c1"># saves <code>./myfile.report.json</code> and <code>./myfile.report.html</code></span>

lighthouse --output json --output html
<span class="c1"># saves <code>./&lt;HOST&gt;_&lt;DATE&gt;.report.json</code> and <code>./&lt;HOST&gt;_&lt;DATE&gt;.report.html</code></span>

lighthouse --output-path<span class="o">=</span>~/mydir/foo.out --save-assets
<span class="c1"># saves <code>~/mydir/foo.report.html</code></span><span class="c1"># saves <code>~/mydir/foo-0.trace.json</code> and <code>~/mydir/foo-0.devtoolslog.json</code></span>

lighthouse --output-path<span class="o">=</span>./report.json --output json
<span class="c1"># saves <code>./report.json</code></span></code></pre>
</div>
<p data-pid="D8G4Rchh">通過運行 <code>$ lighthouse --help</code> 來查看為 CLI 選項</p>
<h3>[3] 使用 Chrome 擴展程式運行 Lighthouse</h3>
<p data-pid="L33qjfSA"><i>正如我之前所說，DevTools工作流程是最好的，因為它除了與擴展工作流程相同之外，還有額外的好處：無需進行安裝。</i></p>
<p data-pid="Y8eKNjij"><i>To use this method you need to install the extension, but If you have your reasons, here is the guide</i>; <i>要使用此方法，你需要安裝擴展程式，如果你有自己的理由的話。 這是按照指南：</i></p>
<ul>
<li data-pid="8Im7EMM9">下載<a href="https://link.zhihu.com/?target=https%3A//www.google.com/chrome/browser/desktop/" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">谷歌 Chrome 瀏覽器</a></li>
<li data-pid="mCPBLkyg">從 Chrome 網上應用程式安裝 <a href="https://link.zhihu.com/?target=https%3A//chrome.google.com/webstore/detail/lighthouse/blipmdconlkpinefehnmjammfjpmpbjk" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">Lighthouse Chrome 延伸程式</a>。</li>
<li data-pid="t6rPbFHc">導航到要審核的頁面</li>
<li data-pid="t-dMPyK5">點擊 <b>Lighthouse 圖示</b>。</li>
</ul>
<blockquote data-pid="9pmQ3MQQ"><p><i>它應該在 Chrome 位址欄旁邊。 如果沒有，請打開Chrome的主功能表（右上角的三個點），然後在功能表頂部訪問它。 點擊後會展開 Lighthouse 功能表。</i></p></blockquote>
<ul>
<li data-pid="IHUz9sww">按兩下 <b>Generate report</b>。</li>
</ul>
<blockquote data-pid="2FuG4D4h"><p><i>Lighthouse 會針對打開的頁面運行審核，然後打開一個新選項卡，其中包含結果報告。</i></p></blockquote>
<p data-pid="a77GPv41">Bingo! 你做到了~</p>
<hr>
<p data-pid="nA_7AmuB">就這些，Lighthouse 是一個很好的工具，尤其適合初學者。</p>
<p data-pid="etlAuI2C">在審核 Progressive Web 應用時，它是一個非常有用的工具。</p>
<p data-pid="g1vDLx_u">當我開始使用 Lighthouse 時，實際上學到了很多優化和性能標準。 相信你很快就能夠成為能夠構建具有出色性能、可訪問性和用戶體驗的Web應用專家。 <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<blockquote data-pid="RvX7rVzX"><p><i>Lighthouse 不是魔術，它是由人類創造的。 它是開源的，歡迎對其作出你的貢獻。 可以通過查看 github 上的 issue 追蹤器，找到可以修復的錯誤，或者創建和改進審核過程。 issue 跟蹤器也是討論審計指標，新審計想法或與 Lighthouse 相關的任何內容的好去處。</i></p></blockquote>
<h3>歡迎關注前端公眾號：前端先鋒，獲取前端工程化實用工具包。</h3>
<figure data-size="normal"><noscript><img decoding="async" src="" data-caption="" data-size="normal" data-rawwidth="258" data-rawheight="258" class="content_image" width="258" data-original="https://pic2.zhimg.com/v2-9a01c5cc3422d21bfdf593b384956ab9_b.jpg"></noscript><img decoding="async" src="" data-caption="" data-size="normal" data-rawwidth="258" data-rawheight="258" class="content_image lazy" width="258" data-actualsrc="https://pic2.zhimg.com/v2-9a01c5cc3422d21bfdf593b384956ab9_b.jpg" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='258'%20height='258'&gt;&lt;/svg&gt;"></figure>
</div>
</div>
</div>
</article>
<h3 style="padding: 15px 0; margin-top:30px;">想了解更多關於 Facebook 與 Google 廣告投放？</h3>
<ul>
<li><a href="https://tenten.co/learning/google-ads-vs-facebook-ads/" data-wpel-link="internal" rel="noopener noreferrer">Google Ads 與 Facebook Ads：哪個更適合您的 2022 年廣告策略？</a></li>
<li><a href="https://university.tenten.co/t/adtech-header-bidding/1087/" data-wpel-link="external" rel="nofollow external noopener noreferrer">AD Tech - 廣告科技總整理</a></li>
</ul>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/software-engineering/front-end-dev/38138/topic-71239403/" data-wpel-link="internal">頁面審核工具 Chrome Lighthouse 簡介</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>谷歌的5大搜尋引擎優化工具</title>
		<link>https://hypergrowths.com/software-engineering/front-end-dev/38136/topic-84960082/</link>
		
		<dc:creator><![CDATA[marketer]]></dc:creator>
		<pubDate>Tue, 30 Nov 2021 04:41:16 +0000</pubDate>
				<category><![CDATA[前端開發]]></category>
		<guid isPermaLink="false">https://hypergrowths.com/software-engineering/front-end-dev/38136/topic-84960082/</guid>

					<description><![CDATA[<p>Google優化提供了許多適用於SEO的工具，以下是谷歌的五大搜尋引擎優化工具。 1. Chrome燈塔Lighthouse是網站優化評論工具的「精簡」版本。 它目前提供有關十個SEO指標的反饋。 該燈塔SEO工具也可以下載並安裝Chrome...</p>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/software-engineering/front-end-dev/38136/topic-84960082/" data-wpel-link="internal">谷歌的5大搜尋引擎優化工具</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></description>
										<content:encoded><![CDATA[<article class="Post-Main Post-NormalMain" tabindex="-1">
<header class="Post-Header">
<h1 class="Post-Title">谷歌的5大搜尋引擎優化工具</h1>
<div class="Post-Author">
<div class="AuthorInfo" itemprop="author" itemscope="" itemtype="http://schema.org/Person">
<div class="AuthorInfo"><meta itemprop="name" content="优化小王子"><meta itemprop="image" content="https://pic2.zhimg.com/v2-6f968a3cc6e46f01ccf827bdd19cbb16_l.jpg?source=172ae18b"><meta itemprop="url" content="https://www.zhihu.com/people/you-hua-xiao-wang-zi"><meta itemprop="zhihu:followerCount"></div>
</div>
</div>
</header>
<div class="Post-RichTextContainer">
<style data-emotion-css="1yuhvjn">.css-1yuhvjn{margin-top:16px;}</style>
<div class="css-1yuhvjn">
<style data-emotion-css="3jt6os">.css-3jt6os .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-3jt6os .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-3jt6os .FileLinkCard-info{margin-left:12px;}.css-3jt6os .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-3jt6os .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-3jt6os .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="1wr1m8">.css-1wr1m8 .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-1wr1m8 .LinkCard.new,.css-1wr1m8 .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-1wr1m8 .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-1wr1m8 .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-1wr1m8 .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-1wr1m8 .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-1wr1m8 .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-1wr1m8 .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-1wr1m8 .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-1wr1m8 .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-1wr1m8 .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-1wr1m8 .LinkCard.old,.css-1wr1m8 .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}</style>
<style data-emotion-css="hypxot">.css-hypxot .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hypxot .LinkCard.old,.css-hypxot .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hypxot .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hypxot .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hypxot .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hypxot .LinkCard.new,.css-hypxot .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hypxot .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hypxot .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hypxot .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hypxot .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hypxot .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hypxot .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hypxot .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hypxot .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hypxot .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hypxot .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hypxot .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hypxot .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hypxot .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hypxot .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hypxot .FileLinkCard-info{margin-left:12px;}.css-hypxot .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hypxot .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="hnrfcf animation-1sh55c5">.css-hnrfcf{word-break:break-word;line-height:1.6;}.css-hnrfcf a.UserLink-link{color:#175199;}.css-hnrfcf a.UserLink-link:hover{border-bottom:1px solid #175199;}.css-hnrfcf lazy[data-lazy-status]{background-color:#F6F6F6;}.css-hnrfcf lazy[data-lazy-status="ok"]{background-color:transparent;-webkit-animation:animation-1sh55c5 0.5s ease-in;animation:animation-1sh55c5 0.5s ease-in;}.css-hnrfcf > *:first-of-type{margin-top:0;}.css-hnrfcf > :last-child{margin-bottom:0;}.css-hnrfcf h1,.css-hnrfcf h2{clear:left;margin-top:calc((1.4em * 2) / 1.2);margin-bottom:calc(1.4em / 1.2);font-size:1.2em;line-height:1.5;font-weight:600;}.css-hnrfcf h3,.css-hnrfcf h4,.css-hnrfcf h5,.css-hnrfcf h6{clear:left;margin-top:calc((1.4em * 1.5) / 1.1);margin-bottom:calc(1.4em / 1.1);font-size:1.1em;line-height:1.5;font-weight:600;}.css-hnrfcf u{-webkit-text-decoration:none;text-decoration:none;border-bottom:1px dashed #808080;}.css-hnrfcf b{font-weight:600;}.css-hnrfcf sup{font-size:0.8em;}.css-hnrfcf sup[data-draft-type='reference']{color:#175199;}.css-hnrfcf a:focus{outline:none;-webkit-transition:box-shadow 0.3s;transition:box-shadow 0.3s;}html[data-focus-visible] .css-hnrfcf a:focus{box-shadow:0 0 0 2px #FFFFFF,0 0 0 4px rgba(0,102,255,0.3);}.css-hnrfcf a.ztext-link,.css-hnrfcf a.internal,.css-hnrfcf a.external{-webkit-text-decoration:none;text-decoration:none;cursor:pointer;border-bottom:1px solid #808080;}.css-hnrfcf a.ztext-link:hover,.css-hnrfcf a.internal:hover,.css-hnrfcf a.external:hover{color:#175199;border-bottom:1px solid #175199;}.css-hnrfcf a.ztext-link > .ellipsis::after,.css-hnrfcf a.internal > .ellipsis::after,.css-hnrfcf a.external > .ellipsis::after{content:'...';}.css-hnrfcf a.ztext-link > .invisible,.css-hnrfcf a.internal > .invisible,.css-hnrfcf a.external > .invisible{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;}.css-hnrfcf a.ztext-link u,.css-hnrfcf a.internal u,.css-hnrfcf a.external u{border:none;}.css-hnrfcf a.member_mention{color:#175199;}.css-hnrfcf a.member_mention:hover{border-bottom:1px solid #175199;}.css-hnrfcf p{margin:1.4em 0;}.css-hnrfcf p.ztext-empty-paragraph{margin:calc((2.8em- (1.4em * 2 + 1.6em)) / 2) 0;}.css-hnrfcf p.ztext-empty-paragraph + .ztext-empty-paragraph{margin:1.4em 0;}.css-hnrfcf hr{margin:4em auto;width:240px;max-width:100%;border:none;border-top:1px solid #D3D3D3;}.css-hnrfcf img[eeimg]{max-width:100%;vertical-align:middle;}.css-hnrfcf img[eeimg="1"]{margin:0 3px;display:inline-block;}.css-hnrfcf img[eeimg="2"]{margin:1.4em 0;display:block;}.css-hnrfcf blockquote{margin:1.4em 0;padding-left:1em;color:#646464;border-left:3px solid #D3D3D3;}.css-hnrfcf ol,.css-hnrfcf ul{margin:1.4em 0;padding:0;}.css-hnrfcf ol ol,.css-hnrfcf ul ol,.css-hnrfcf ol ul,.css-hnrfcf ul ul{margin:0;}.css-hnrfcf ol > ol,.css-hnrfcf ul > ol,.css-hnrfcf ol > ul,.css-hnrfcf ul > ul{display:table-row;}.css-hnrfcf ol > ol::before,.css-hnrfcf ul > ol::before,.css-hnrfcf ol > ul::before,.css-hnrfcf ul > ul::before{display:table-cell;content:'';}.css-hnrfcf ul{display:table;}.css-hnrfcf ul>li{display:table-row;list-style:none;}.css-hnrfcf ul>li::before{display:table-cell;content:'&bull;  ';white-space:pre;}.css-hnrfcf ol{display:table;counter-reset:ol;}.css-hnrfcf ol > li{display:table-row;list-style:none;}.css-hnrfcf ol > li::before{display:table-cell;text-align:right;counter-increment:ol;content:counter(ol) '. ';white-space:pre;}.css-hnrfcf ol ol{counter-reset:ol2;}.css-hnrfcf ol ol li::before{counter-increment:ol2;content:counter(ol2) '. ';}.css-hnrfcf ol ol ol{counter-reset:ol3;}.css-hnrfcf ol ol ol li::before{counter-increment:ol3;content:counter(ol3) '. ';}.css-hnrfcf ol ol ol ol{counter-reset:ol4;}.css-hnrfcf ol ol ol ol li::before{counter-increment:ol4;content:counter(ol4) '. ';}.css-hnrfcf figure{margin:1.4em 0;}.css-hnrfcf figure .content_image,.css-hnrfcf figure .origin_image{margin:0 auto;}.css-hnrfcf figure figcaption{margin-top:calc(0.6em / 0.9);padding:0 1em;font-size:0.9em;line-height:1.5;text-align:center;color:#999999;}.css-hnrfcf figure + figure{margin-top:calc(1.4em * 1.6);}.css-hnrfcf figure[data-size='small'],.css-hnrfcf figure:not([data-size]) > [data-size='small']{clear:both;}.css-hnrfcf figure[data-size='left'],.css-hnrfcf figure:not([data-size]) > [data-size='left']{float:left;margin:0 20px 20px 0;max-width:33%;}.css-hnrfcf figure[data-size='right'],.css-hnrfcf figure:not([data-size]) > [data-size='right']{float:right;margin:0 0 20px 20px;max-width:33%;}.css-hnrfcf figure[data-size='collapse']{margin-bottom:0;}.css-hnrfcf figure[data-size='collapse'] + figure{margin-top:0;}.css-hnrfcf .content_image,.css-hnrfcf .origin_image{display:block;max-width:100%;margin:1.4em auto;}.css-hnrfcf .content_image[data-size='small'],.css-hnrfcf .origin_image[data-size='small']{max-width:40%;}.css-hnrfcf .content_image.zh-lightbox-thumb,.css-hnrfcf .origin_image.zh-lightbox-thumb{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in;}.css-hnrfcf code{margin:0 2px;padding:3px 4px;border-radius:3px;font-size:0.9em;background-color:#F6F6F6;}.css-hnrfcf pre{margin:1.4em 0;padding:calc(0.8em / 0.9);font-size:0.9em;word-break:initial;word-wrap:initial;white-space:pre;overflow:auto;-webkit-overflow-scrolling:touch;background:#F6F6F6;border-radius:4px;}.css-hnrfcf pre code{margin:0;padding:0;font-size:inherit;border-radius:0;background-color:inherit;}.css-hnrfcf li pre{white-space:pre-wrap;}.css-hnrfcf table[data-draft-type='table']{border-collapse:collapse;font-size:15px;margin:1.4em auto;max-width:100%;table-layout:fixed;text-align:left;width:100%;}.css-hnrfcf table[data-draft-type='table'][data-size='small']{min-width:260px;width:40%;}.css-hnrfcf table[data-draft-type='table'][data-row-style='striped'] tr:nth-of-type(2n + 1){background:#F6F6F6;}.css-hnrfcf table[data-draft-type='table'] td,.css-hnrfcf table[data-draft-type='table'] th{border:1px solid #D3D3D3;line-height:24px;height:24px;padding:3px 12px;}.css-hnrfcf table[data-draft-type='table'] th{background:#EBEBEB;color:#121212;font-weight:500;}.css-hnrfcf .video-box,.css-hnrfcf .link-box{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin:1.4em 0;overflow:auto;white-space:normal;cursor:pointer;border:solid 1px #EBEBEB;border-radius:4px;}.css-hnrfcf .highlight{margin:1em 0;}.css-hnrfcf .highlight pre{margin:0;}.css-hnrfcf .highlight .hll{background-color:#FDFDFD;}.css-hnrfcf .highlight .c{font-style:italic;color:#999999;}.css-hnrfcf .highlight .err{color:#F1403C;}.css-hnrfcf .highlight .k{font-weight:600;}.css-hnrfcf .highlight .o{font-weight:600;}.css-hnrfcf .highlight .cm{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cp{font-weight:600;color:#999999;}.css-hnrfcf .highlight .c1{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cs{font-style:italic;font-weight:600;color:#999999;}.css-hnrfcf .highlight .gd{color:#FF3366;}.css-hnrfcf .highlight .ge{font-style:italic;}.css-hnrfcf .highlight .gr{color:#F1403C;}.css-hnrfcf .highlight .gh{color:#999999;}.css-hnrfcf .highlight .gi{color:#12b370;}.css-hnrfcf .highlight .go{color:#808080;}.css-hnrfcf .highlight .gp{color:#646464;}.css-hnrfcf .highlight .gs{font-weight:600;}.css-hnrfcf .highlight .gu{color:#999999;}.css-hnrfcf .highlight .gt{color:#F1403C;}.css-hnrfcf .highlight .kc{font-weight:600;}.css-hnrfcf .highlight .kd{font-weight:600;}.css-hnrfcf .highlight .kn{font-weight:600;}.css-hnrfcf .highlight .kp{font-weight:600;}.css-hnrfcf .highlight .kr{font-weight:600;}.css-hnrfcf .highlight .kt{font-weight:600;color:#175199;}.css-hnrfcf .highlight .m{color:#0066FF;}.css-hnrfcf .highlight .s{color:#F1403C;}.css-hnrfcf .highlight .na{color:#0066FF;}.css-hnrfcf .highlight .nb{color:#0066FF;}.css-hnrfcf .highlight .nc{font-weight:600;color:#175199;}.css-hnrfcf .highlight .no{color:#0066FF;}.css-hnrfcf .highlight .ni{color:#5868D1;}.css-hnrfcf .highlight .ne{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nf{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nn{color:#646464;}.css-hnrfcf .highlight .nt{color:#175199;}.css-hnrfcf .highlight .nv{color:#0066FF;}.css-hnrfcf .highlight .ow{font-weight:600;}.css-hnrfcf .highlight .w{color:#BFBFBF;}.css-hnrfcf .highlight .mf{color:#0066FF;}.css-hnrfcf .highlight .mh{color:#0066FF;}.css-hnrfcf .highlight .mi{color:#0066FF;}.css-hnrfcf .highlight .mo{color:#0066FF;}.css-hnrfcf .highlight .sb{color:#F1403C;}.css-hnrfcf .highlight .sc{color:#F1403C;}.css-hnrfcf .highlight .sd{color:#F1403C;}.css-hnrfcf .highlight .s2{color:#F1403C;}.css-hnrfcf .highlight .se{color:#F1403C;}.css-hnrfcf .highlight .sh{color:#F1403C;}.css-hnrfcf .highlight .si{color:#F1403C;}.css-hnrfcf .highlight .sx{color:#F1403C;}.css-hnrfcf .highlight .sr{color:#C2A469;}.css-hnrfcf .highlight .s1{color:#F1403C;}.css-hnrfcf .highlight .ss{color:#F1403C;}.css-hnrfcf .highlight .bp{color:#999999;}.css-hnrfcf .highlight .vc{color:#0066FF;}.css-hnrfcf .highlight .vg{color:#0066FF;}.css-hnrfcf .highlight .vi{color:#0066FF;}.css-hnrfcf .highlight .il{color:#0066FF;}.css-hnrfcf .highlight::-webkit-scrollbar{width:6px;height:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal{background-color:rgba(18,18,18,0.5);border-radius:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal:hover{background-color:rgba(18,18,18,0.6);}.css-hnrfcf .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hnrfcf .LinkCard.old,.css-hnrfcf .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hnrfcf .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hnrfcf .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hnrfcf .LinkCard.new,.css-hnrfcf .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hnrfcf .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hnrfcf .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hnrfcf .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hnrfcf .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hnrfcf .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hnrfcf .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hnrfcf .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hnrfcf .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hnrfcf .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hnrfcf .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hnrfcf .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hnrfcf .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hnrfcf .FileLinkCard-info{margin-left:12px;}.css-hnrfcf .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hnrfcf .FileLinkCard-source{white-space:pre;}@-webkit-keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}@keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}</style>
<div class="RichText ztext Post-RichText css-hnrfcf" options="[object Object]">
<p data-pid="eeA2BONZ">Google優化提供了許多適用於SEO的工具，以下是谷歌的五大搜尋引擎優化工具。</p>
<p class="ztext-empty-paragraph"></p>
<h2><b>1. Chrome燈塔</b></h2>
<p data-pid="qL_f828M">Lighthouse是網站優化評論工具的「精簡」版本。 它目前提供有關十個SEO指標的反饋。 該燈塔SEO工具也可以下載並安裝Chrome瀏覽器作為一個擴展 燈塔範圍有限，但它提供10個指標，事關對谷歌的快照。</p>
<p class="ztext-empty-paragraph"></p>
<p data-pid="dP9GFEYl">Ten Metrics Chrome Lighthouse目前報導：</p>
<p data-pid="k3iVbWEk">視口元標記</p>
<p data-pid="N_vEDW7o">標題元素</p>
<p data-pid="gykSOi83">元描述</p>
<p data-pid="H8sN417g">HTTP狀態代碼</p>
<p data-pid="tkkvd1Wa">連結上的描述性文本</p>
<p data-pid="p7l834Gc">成功抓取和編製索引的頁面狀態</p>
<p data-pid="092GNffn">驗證Hreflang</p>
<p data-pid="W5mHv1ll">驗證rel = canonical</p>
<p data-pid="6u9Tu2Sq">驗證行動裝置的字型易讀性</p>
<p data-pid="2c5Rw1c5">檢查文件是否避免瀏覽器外掛程式進行查看</p>
<p data-pid="Q0dOitcv">為什麼你應該使用燈塔SEO工具</p>
<p data-pid="Llx2-V9O">將Chrome Lighthouse視為輕量級網站審核工具很容易。 我不會否認它，Lighthouse是一個輕量級的網站評論工具。 但是，它是一個重要的網站評論工具，因為它代表了Google對您應該關注的十個指標的看法。 如果Google認為這些指標很重要，那麼您也應該這樣做。</p>
<p class="ztext-empty-paragraph"></p>
<h2><b>2. TestMySite</b></h2>
<p data-pid="tBsiMO4Z">此網站審核工具提供兩個指標：</p>
<p class="ztext-empty-paragraph"></p>
<p data-pid="OqudljJq">預計3G移動網路的載入時間</p>
<p data-pid="PbrTdYSN">由於載入時間不佳導致訪客損失估計。</p>
<p data-pid="SK5DMWS2">這是獲取網站速度健康快照的好工具。 這是一個很好的起點指標。</p>
<p class="ztext-empty-paragraph"></p>
<p data-pid="d9m_QnQi">該工具還提供了一封完整的報告，其中包含有關加快特定網頁速度的建議。 但它也需要註冊一份時事通訊。</p>
<p class="ztext-empty-paragraph"></p>
<p data-pid="WBdJRWfS">為什麼要使用TestMySite</p>
<p data-pid="mXSXRo49">您也可以使用Page Speed Insights獲取相同的訊息。 儘管如此，TestMySite工具是獲取網頁速度縮略圖概覽的絕佳方式。 如果您想要詳細瞭解需要修復的內容，請轉到Google的Page Speed Insights。</p>
<p class="ztext-empty-paragraph"></p>
<h2><b>3. Page Speed Insights</b></h2>
<p data-pid="M6LRIIEF">此在線工具提供了一個分數，並提供了加快網頁速度的具體技巧。 它告訴您哪些腳本和樣式表正在減慢您的網站速度，哪些圖像太大，並提供了許多其他提示來加快您的網頁速度。</p>
<p class="ztext-empty-paragraph"></p>
<p data-pid="dMinnm5G">為什麼你應該使用頁面速度見解</p>
<p data-pid="WT2OC78B">Page Speed Insights不僅為影響頁面速度的隱藏技術問題提供了有用的解決方案。 它也是了解這些問題的資源。 每個突出顯示的問題都連結到提供深入訊息的Google Developers頁面。</p>
<p class="ztext-empty-paragraph"></p>
<h2><b>4. 安全瀏覽測試</b></h2>
<p data-pid="tTQqe-ar">此工具可測試網站上是否存在任何惡意軟體。 然而...... 這個工具的一個有趣之處在於它還揭示了網站測試的最後日期。 我不知道網站測試頻率的標準是什麼。 有些網站seo的測試頻率高於其他網站。</p>
<p class="ztext-empty-paragraph"></p>
<p data-pid="tJCA-qxq">據推測，最後的測試日期基於一些重要性度量。 我懷疑它可能與網站更新的頻率有關，這反過來可能會影響網站的抓取頻率。</p>
<p class="ztext-empty-paragraph"></p>
<p data-pid="SOlgc0T8">為什麼要使用安全瀏覽測試工具</p>
<p data-pid="aumPZUKc">如果您的網站最近沒有更新，並且日期對應於上次更新網站，我不擔心。 但該工具確實提供了有關其是否託管惡意軟體的有價值訊息，並可能指示網站更新和爬網的頻率。</p>
<p class="ztext-empty-paragraph"></p>
<h2><b>5. 谷歌趨勢</b></h2>
<p data-pid="gCb9ZGFw">Google趨勢提供有關關鍵字受歡迎程度的訊息，並按時間和地理位置對訊息進行細分。</p>
<p class="ztext-empty-paragraph"></p>
<p data-pid="dXAhtGIk">時間段可以讓您了解季節如何影響關鍵詞優化排名。 它還可以顯示關鍵字是否正在失去人氣。 如果您在關鍵字中看到下降趨勢，則可能表明產品或趨勢導致搜索者失去對該搜索的興趣。</p>
<p class="ztext-empty-paragraph"></p>
<p data-pid="dIjDI_E9">為什麼你應該使用谷歌趨勢</p>
<p data-pid="t80nddlY">Google趨勢對於競爭性研究也很重要。 它向您顯示人們使用競爭對手的品牌名稱搜索Google的頻率。 趨勢線將逐步顯示出這種趨勢是穩定的，如果它上升，下降或穩定。</p>
<p class="ztext-empty-paragraph"></p>
<p data-pid="e5X0gvMi">顯然，趨勢向下的競爭趨勢線是好的。 趨勢線趨於上升是不好的。 趨勢線是穩定的（最常見的）意味著競爭對手表現良好，您必須確定自己的弱點並將其作為您的優勢 - 在眾多考慮因素中。</p>
</div>
</div>
</div>
</article>
<h3 style="padding: 15px 0; margin-top:30px;">想了解更多關於 Facebook 與 Google 廣告投放？</h3>
<ul>
<li><a href="https://tenten.co/learning/google-ads-vs-facebook-ads/" data-wpel-link="internal" rel="noopener noreferrer">Google Ads 與 Facebook Ads：哪個更適合您的 2022 年廣告策略？</a></li>
<li><a href="https://university.tenten.co/t/adtech-header-bidding/1087/" data-wpel-link="external" rel="nofollow external noopener noreferrer">AD Tech - 廣告科技總整理</a></li>
</ul>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/software-engineering/front-end-dev/38136/topic-84960082/" data-wpel-link="internal">谷歌的5大搜尋引擎優化工具</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>使用 Lighthouse檢查及優化Web應用</title>
		<link>https://hypergrowths.com/software-engineering/front-end-dev/38131/topic-103718894/</link>
		
		<dc:creator><![CDATA[marketer]]></dc:creator>
		<pubDate>Tue, 30 Nov 2021 04:41:01 +0000</pubDate>
				<category><![CDATA[前端開發]]></category>
		<guid isPermaLink="false">https://hypergrowths.com/software-engineering/front-end-dev/38131/topic-103718894/</guid>

					<description><![CDATA[<p>Lighthouse 是Google開源的一個自動化工具，用於改進網路應用的品質，適用於網頁版和移動端，比如找出哪些資源適合延遲載入，以及可以在初始頁面載入中節省多少流量。 能生成一個包括頁面性能、PWA（Progressive we...</p>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/software-engineering/front-end-dev/38131/topic-103718894/" data-wpel-link="internal">使用 Lighthouse檢查及優化Web應用</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></description>
										<content:encoded><![CDATA[<article class="Post-Main Post-NormalMain" tabindex="-1">
<header class="Post-Header">
<h1 class="Post-Title">使用 Lighthouse檢查及優化Web應用</h1>
<div class="Post-Author">
<div class="AuthorInfo" itemprop="author" itemscope="" itemtype="http://schema.org/Person">
<div class="AuthorInfo"><meta itemprop="name" content="博哥"><meta itemprop="image" content="https://pic3.zhimg.com/v2-4184a9733c35995c1d5678cfc6f1d5ee_l.jpg?source=172ae18b"><meta itemprop="url" content="https://www.zhihu.com/people/rob666"><meta itemprop="zhihu:followerCount"></div>
</div>
</div>
</header>
<div class="Post-RichTextContainer">
<style data-emotion-css="1yuhvjn">.css-1yuhvjn{margin-top:16px;}</style>
<div class="css-1yuhvjn">
<style data-emotion-css="3jt6os">.css-3jt6os .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-3jt6os .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-3jt6os .FileLinkCard-info{margin-left:12px;}.css-3jt6os .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-3jt6os .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-3jt6os .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="1wr1m8">.css-1wr1m8 .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-1wr1m8 .LinkCard.new,.css-1wr1m8 .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-1wr1m8 .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-1wr1m8 .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-1wr1m8 .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-1wr1m8 .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-1wr1m8 .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-1wr1m8 .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-1wr1m8 .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-1wr1m8 .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-1wr1m8 .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-1wr1m8 .LinkCard.old,.css-1wr1m8 .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}</style>
<style data-emotion-css="hypxot">.css-hypxot .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hypxot .LinkCard.old,.css-hypxot .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hypxot .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hypxot .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hypxot .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hypxot .LinkCard.new,.css-hypxot .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hypxot .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hypxot .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hypxot .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hypxot .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hypxot .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hypxot .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hypxot .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hypxot .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hypxot .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hypxot .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hypxot .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hypxot .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hypxot .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hypxot .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hypxot .FileLinkCard-info{margin-left:12px;}.css-hypxot .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hypxot .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="hnrfcf animation-1sh55c5">.css-hnrfcf{word-break:break-word;line-height:1.6;}.css-hnrfcf a.UserLink-link{color:#175199;}.css-hnrfcf a.UserLink-link:hover{border-bottom:1px solid #175199;}.css-hnrfcf lazy[data-lazy-status]{background-color:#F6F6F6;}.css-hnrfcf lazy[data-lazy-status="ok"]{background-color:transparent;-webkit-animation:animation-1sh55c5 0.5s ease-in;animation:animation-1sh55c5 0.5s ease-in;}.css-hnrfcf > *:first-of-type{margin-top:0;}.css-hnrfcf > :last-child{margin-bottom:0;}.css-hnrfcf h1,.css-hnrfcf h2{clear:left;margin-top:calc((1.4em * 2) / 1.2);margin-bottom:calc(1.4em / 1.2);font-size:1.2em;line-height:1.5;font-weight:600;}.css-hnrfcf h3,.css-hnrfcf h4,.css-hnrfcf h5,.css-hnrfcf h6{clear:left;margin-top:calc((1.4em * 1.5) / 1.1);margin-bottom:calc(1.4em / 1.1);font-size:1.1em;line-height:1.5;font-weight:600;}.css-hnrfcf u{-webkit-text-decoration:none;text-decoration:none;border-bottom:1px dashed #808080;}.css-hnrfcf b{font-weight:600;}.css-hnrfcf sup{font-size:0.8em;}.css-hnrfcf sup[data-draft-type='reference']{color:#175199;}.css-hnrfcf a:focus{outline:none;-webkit-transition:box-shadow 0.3s;transition:box-shadow 0.3s;}html[data-focus-visible] .css-hnrfcf a:focus{box-shadow:0 0 0 2px #FFFFFF,0 0 0 4px rgba(0,102,255,0.3);}.css-hnrfcf a.ztext-link,.css-hnrfcf a.internal,.css-hnrfcf a.external{-webkit-text-decoration:none;text-decoration:none;cursor:pointer;border-bottom:1px solid #808080;}.css-hnrfcf a.ztext-link:hover,.css-hnrfcf a.internal:hover,.css-hnrfcf a.external:hover{color:#175199;border-bottom:1px solid #175199;}.css-hnrfcf a.ztext-link > .ellipsis::after,.css-hnrfcf a.internal > .ellipsis::after,.css-hnrfcf a.external > .ellipsis::after{content:'...';}.css-hnrfcf a.ztext-link > .invisible,.css-hnrfcf a.internal > .invisible,.css-hnrfcf a.external > .invisible{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;}.css-hnrfcf a.ztext-link u,.css-hnrfcf a.internal u,.css-hnrfcf a.external u{border:none;}.css-hnrfcf a.member_mention{color:#175199;}.css-hnrfcf a.member_mention:hover{border-bottom:1px solid #175199;}.css-hnrfcf p{margin:1.4em 0;}.css-hnrfcf p.ztext-empty-paragraph{margin:calc((2.8em- (1.4em * 2 + 1.6em)) / 2) 0;}.css-hnrfcf p.ztext-empty-paragraph + .ztext-empty-paragraph{margin:1.4em 0;}.css-hnrfcf hr{margin:4em auto;width:240px;max-width:100%;border:none;border-top:1px solid #D3D3D3;}.css-hnrfcf img[eeimg]{max-width:100%;vertical-align:middle;}.css-hnrfcf img[eeimg="1"]{margin:0 3px;display:inline-block;}.css-hnrfcf img[eeimg="2"]{margin:1.4em 0;display:block;}.css-hnrfcf blockquote{margin:1.4em 0;padding-left:1em;color:#646464;border-left:3px solid #D3D3D3;}.css-hnrfcf ol,.css-hnrfcf ul{margin:1.4em 0;padding:0;}.css-hnrfcf ol ol,.css-hnrfcf ul ol,.css-hnrfcf ol ul,.css-hnrfcf ul ul{margin:0;}.css-hnrfcf ol > ol,.css-hnrfcf ul > ol,.css-hnrfcf ol > ul,.css-hnrfcf ul > ul{display:table-row;}.css-hnrfcf ol > ol::before,.css-hnrfcf ul > ol::before,.css-hnrfcf ol > ul::before,.css-hnrfcf ul > ul::before{display:table-cell;content:'';}.css-hnrfcf ul{display:table;}.css-hnrfcf ul>li{display:table-row;list-style:none;}.css-hnrfcf ul>li::before{display:table-cell;content:'&bull;  ';white-space:pre;}.css-hnrfcf ol{display:table;counter-reset:ol;}.css-hnrfcf ol > li{display:table-row;list-style:none;}.css-hnrfcf ol > li::before{display:table-cell;text-align:right;counter-increment:ol;content:counter(ol) '. ';white-space:pre;}.css-hnrfcf ol ol{counter-reset:ol2;}.css-hnrfcf ol ol li::before{counter-increment:ol2;content:counter(ol2) '. ';}.css-hnrfcf ol ol ol{counter-reset:ol3;}.css-hnrfcf ol ol ol li::before{counter-increment:ol3;content:counter(ol3) '. ';}.css-hnrfcf ol ol ol ol{counter-reset:ol4;}.css-hnrfcf ol ol ol ol li::before{counter-increment:ol4;content:counter(ol4) '. ';}.css-hnrfcf figure{margin:1.4em 0;}.css-hnrfcf figure .content_image,.css-hnrfcf figure .origin_image{margin:0 auto;}.css-hnrfcf figure figcaption{margin-top:calc(0.6em / 0.9);padding:0 1em;font-size:0.9em;line-height:1.5;text-align:center;color:#999999;}.css-hnrfcf figure + figure{margin-top:calc(1.4em * 1.6);}.css-hnrfcf figure[data-size='small'],.css-hnrfcf figure:not([data-size]) > [data-size='small']{clear:both;}.css-hnrfcf figure[data-size='left'],.css-hnrfcf figure:not([data-size]) > [data-size='left']{float:left;margin:0 20px 20px 0;max-width:33%;}.css-hnrfcf figure[data-size='right'],.css-hnrfcf figure:not([data-size]) > [data-size='right']{float:right;margin:0 0 20px 20px;max-width:33%;}.css-hnrfcf figure[data-size='collapse']{margin-bottom:0;}.css-hnrfcf figure[data-size='collapse'] + figure{margin-top:0;}.css-hnrfcf .content_image,.css-hnrfcf .origin_image{display:block;max-width:100%;margin:1.4em auto;}.css-hnrfcf .content_image[data-size='small'],.css-hnrfcf .origin_image[data-size='small']{max-width:40%;}.css-hnrfcf .content_image.zh-lightbox-thumb,.css-hnrfcf .origin_image.zh-lightbox-thumb{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in;}.css-hnrfcf code{margin:0 2px;padding:3px 4px;border-radius:3px;font-size:0.9em;background-color:#F6F6F6;}.css-hnrfcf pre{margin:1.4em 0;padding:calc(0.8em / 0.9);font-size:0.9em;word-break:initial;word-wrap:initial;white-space:pre;overflow:auto;-webkit-overflow-scrolling:touch;background:#F6F6F6;border-radius:4px;}.css-hnrfcf pre code{margin:0;padding:0;font-size:inherit;border-radius:0;background-color:inherit;}.css-hnrfcf li pre{white-space:pre-wrap;}.css-hnrfcf table[data-draft-type='table']{border-collapse:collapse;font-size:15px;margin:1.4em auto;max-width:100%;table-layout:fixed;text-align:left;width:100%;}.css-hnrfcf table[data-draft-type='table'][data-size='small']{min-width:260px;width:40%;}.css-hnrfcf table[data-draft-type='table'][data-row-style='striped'] tr:nth-of-type(2n + 1){background:#F6F6F6;}.css-hnrfcf table[data-draft-type='table'] td,.css-hnrfcf table[data-draft-type='table'] th{border:1px solid #D3D3D3;line-height:24px;height:24px;padding:3px 12px;}.css-hnrfcf table[data-draft-type='table'] th{background:#EBEBEB;color:#121212;font-weight:500;}.css-hnrfcf .video-box,.css-hnrfcf .link-box{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin:1.4em 0;overflow:auto;white-space:normal;cursor:pointer;border:solid 1px #EBEBEB;border-radius:4px;}.css-hnrfcf .highlight{margin:1em 0;}.css-hnrfcf .highlight pre{margin:0;}.css-hnrfcf .highlight .hll{background-color:#FDFDFD;}.css-hnrfcf .highlight .c{font-style:italic;color:#999999;}.css-hnrfcf .highlight .err{color:#F1403C;}.css-hnrfcf .highlight .k{font-weight:600;}.css-hnrfcf .highlight .o{font-weight:600;}.css-hnrfcf .highlight .cm{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cp{font-weight:600;color:#999999;}.css-hnrfcf .highlight .c1{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cs{font-style:italic;font-weight:600;color:#999999;}.css-hnrfcf .highlight .gd{color:#FF3366;}.css-hnrfcf .highlight .ge{font-style:italic;}.css-hnrfcf .highlight .gr{color:#F1403C;}.css-hnrfcf .highlight .gh{color:#999999;}.css-hnrfcf .highlight .gi{color:#12b370;}.css-hnrfcf .highlight .go{color:#808080;}.css-hnrfcf .highlight .gp{color:#646464;}.css-hnrfcf .highlight .gs{font-weight:600;}.css-hnrfcf .highlight .gu{color:#999999;}.css-hnrfcf .highlight .gt{color:#F1403C;}.css-hnrfcf .highlight .kc{font-weight:600;}.css-hnrfcf .highlight .kd{font-weight:600;}.css-hnrfcf .highlight .kn{font-weight:600;}.css-hnrfcf .highlight .kp{font-weight:600;}.css-hnrfcf .highlight .kr{font-weight:600;}.css-hnrfcf .highlight .kt{font-weight:600;color:#175199;}.css-hnrfcf .highlight .m{color:#0066FF;}.css-hnrfcf .highlight .s{color:#F1403C;}.css-hnrfcf .highlight .na{color:#0066FF;}.css-hnrfcf .highlight .nb{color:#0066FF;}.css-hnrfcf .highlight .nc{font-weight:600;color:#175199;}.css-hnrfcf .highlight .no{color:#0066FF;}.css-hnrfcf .highlight .ni{color:#5868D1;}.css-hnrfcf .highlight .ne{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nf{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nn{color:#646464;}.css-hnrfcf .highlight .nt{color:#175199;}.css-hnrfcf .highlight .nv{color:#0066FF;}.css-hnrfcf .highlight .ow{font-weight:600;}.css-hnrfcf .highlight .w{color:#BFBFBF;}.css-hnrfcf .highlight .mf{color:#0066FF;}.css-hnrfcf .highlight .mh{color:#0066FF;}.css-hnrfcf .highlight .mi{color:#0066FF;}.css-hnrfcf .highlight .mo{color:#0066FF;}.css-hnrfcf .highlight .sb{color:#F1403C;}.css-hnrfcf .highlight .sc{color:#F1403C;}.css-hnrfcf .highlight .sd{color:#F1403C;}.css-hnrfcf .highlight .s2{color:#F1403C;}.css-hnrfcf .highlight .se{color:#F1403C;}.css-hnrfcf .highlight .sh{color:#F1403C;}.css-hnrfcf .highlight .si{color:#F1403C;}.css-hnrfcf .highlight .sx{color:#F1403C;}.css-hnrfcf .highlight .sr{color:#C2A469;}.css-hnrfcf .highlight .s1{color:#F1403C;}.css-hnrfcf .highlight .ss{color:#F1403C;}.css-hnrfcf .highlight .bp{color:#999999;}.css-hnrfcf .highlight .vc{color:#0066FF;}.css-hnrfcf .highlight .vg{color:#0066FF;}.css-hnrfcf .highlight .vi{color:#0066FF;}.css-hnrfcf .highlight .il{color:#0066FF;}.css-hnrfcf .highlight::-webkit-scrollbar{width:6px;height:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal{background-color:rgba(18,18,18,0.5);border-radius:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal:hover{background-color:rgba(18,18,18,0.6);}.css-hnrfcf .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hnrfcf .LinkCard.old,.css-hnrfcf .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hnrfcf .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hnrfcf .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hnrfcf .LinkCard.new,.css-hnrfcf .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hnrfcf .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hnrfcf .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hnrfcf .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hnrfcf .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hnrfcf .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hnrfcf .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hnrfcf .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hnrfcf .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hnrfcf .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hnrfcf .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hnrfcf .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hnrfcf .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hnrfcf .FileLinkCard-info{margin-left:12px;}.css-hnrfcf .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hnrfcf .FileLinkCard-source{white-space:pre;}@-webkit-keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}@keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}</style>
<div class="RichText ztext Post-RichText css-hnrfcf" options="[object Object]">
<p data-pid="ttQsiaW7"><a href="https://link.zhihu.com/?target=https%3A//github.com/GoogleChrome/lighthouse" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">Lighthouse</a> 是Google開源的一個自動化工具，用於改進網路應用的品質，適用於網頁版和移動端，比如找出哪些資源適合延遲載入，以及可以在初始頁面載入中節省多少流量。 能生成一個包括頁面性能、PWA（Progressive web apps，漸進式 Web 應用）、可訪問性（無障礙）、最佳實踐、SEO的報告清單提供參考，看看可以採取哪些措施來改進您的應用。</p>
<h2>如何使用</h2>
<p data-pid="i9XpKOx-">運行 Lighthouse 的方式有四種：</p>
<ol>
<li data-pid="H3buBWoX">作為 Chrome 擴展程式運行，擴展程式提供了一個對使用者更友好的介面，方便讀取報告，要去應用商店安裝。</li>
<li data-pid="G7GvXA9a">作為命令行工具運行，命令行工具允許您將 Lighthouse 集成到持續集成系統，需要有Node環境。</li>
<li data-pid="_IxqM4PY">使用Node Module，通過Node Module以程式設計方式使用Lighthouse。</li>
<li data-pid="9XASd2I1">在瀏覽器的開發者工具裡運行，這個最簡單，Chrome瀏覽器都會自帶開發者工具，不需要額外安裝，和擴展程式一樣提供了友好的介面。 需要Google Chrome 52 或更高版本。</li>
</ol>
<h2>在開者發工具中運行</h2>
<p data-pid="wD2IXlD0">由於我的瀏覽器版本比較搞，自帶了Lighthouse，所以就不在另外安裝擴展程式了，如果要安裝擴展程式，可以存取<a href="https://link.zhihu.com/?target=https%3A//chrome.google.com/webstore/detail/lighthouse/blipmdconlkpinefehnmjammfjpmpbjk" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">程式安裝位址</a>。</p>
<p data-pid="5Y8qAeuf">在chrome瀏覽器中打開你需要測試的網站，然後打開DevTools介面，選擇Audist面板就可以看到介面了。</p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-142cd94eaabad8704f4788b448acbd68_r.jpg" data-size="normal" data-rawwidth="989" data-rawheight="714" class="origin_image zh-lightbox-thumb" width="989" data-original="https://pic1.zhimg.com/v2-142cd94eaabad8704f4788b448acbd68_b.jpg" title="v2-142cd94eaabad8704f4788b448acbd68_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-142cd94eaabad8704f4788b448acbd68_r.jpg" data-size="normal" data-rawwidth="989" data-rawheight="714" class="origin_image zh-lightbox-thumb lazy" width="989" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='989'%20height='714'&gt;&lt;/svg&gt;" data-actualsrc="https://pic1.zhimg.com/v2-142cd94eaabad8704f4788b448acbd68_b.jpg" title="v2-142cd94eaabad8704f4788b448acbd68_r"><figcaption>開發者工具 Audits 介面</figcaption></figure>
<h3>介面說明</h3>
<p data-pid="U7y4zfTm"><b>Device： </b>可以在移動端和桌面端之間切換代理。</p>
<p data-pid="8RWIvxt4"><b>Audists：</b>需要測試並生成的報告種類，包括頁面性能、PWA（Progressive web apps，漸進式 Web 應用）、可訪問性、最佳實踐、SEO的報告。</p>
<p data-pid="62xkBpM9"><b>Throttling</b>：此項可以類比在行動裝置上瀏覽的條件。 比如限制類比4G速度，事實上這並不會在審查期間進行限制，只是類比計算出在限速條件下的性能指標值，它將有助於計算在相應的移動端條件下載入頁面所需的時間。</p>
<h3>運行結果</h3>
<p data-pid="V-ftOcMb">點擊 Run aduits 即可開始測試，測試結果如下：</p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-e52e103e8afdff8ad4e7fddb99e55e58_r.jpg" data-size="normal" data-rawwidth="964" data-rawheight="632" class="origin_image zh-lightbox-thumb" width="964" data-original="https://pic1.zhimg.com/v2-e52e103e8afdff8ad4e7fddb99e55e58_b.jpg" title="v2-e52e103e8afdff8ad4e7fddb99e55e58_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-e52e103e8afdff8ad4e7fddb99e55e58_r.jpg" data-size="normal" data-rawwidth="964" data-rawheight="632" class="origin_image zh-lightbox-thumb lazy" width="964" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='964'%20height='632'&gt;&lt;/svg&gt;" data-actualsrc="https://pic1.zhimg.com/v2-e52e103e8afdff8ad4e7fddb99e55e58_b.jpg" title="v2-e52e103e8afdff8ad4e7fddb99e55e58_r"><figcaption>Run Aduits 結果</figcaption></figure>
<p data-pid="jfHDTUc8">測試結束后，會生成如上圖的結果報告，包括了勾選的5 大類別的測試評分，針對每個類別會給出特定的優化建議與診斷結果幫助開發者有針對性地進行優化。</p>
<h2>在命令行上運行</h2>
<p data-pid="AbXEuIY4">通過Node CLI 運行可以指定明確的參數訊息，可以同時輸出多個格式的報告文件（預設是HTML），有比較大的靈活性。</p>
<div class="highlight">
<pre><code class="language-js"><span class="nx">npm</span><span class="nx">install</span><span class="o">-</span><span class="nx">g</span><span class="nx">lighthouse</span><span class="err">#</span><span class="nx">or</span><span class="nx">use</span><span class="nx">yarn</span><span class="o">:</span><span class="err">#</span><span class="nx">yarn</span><span class="nx">global</span><span class="nx">add</span><span class="nx">lighthouse</span></code></pre>
</div>
<p data-pid="Ap3--nap">用上面的命令進行安裝，安裝完成後通過以下命令運行（參數只生成性能和最佳實踐）：</p>
<div class="highlight">
<pre><code class="language-js"><span class="nx">lighthouse</span><span class="o">--</span><span class="nx">only</span><span class="o">-</span><span class="nx">categories</span><span class="o">=</span><span class="nx">performance</span><span class="p">,</span><span class="nx">best</span><span class="o">-</span><span class="nx">practices</span><span class="nx">http</span><span class="o">:</span><span class="c1">//suibo.co/
</span></code></pre>
</div>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-ecca57c762033ca3f1d490c5d88b3f02_r.jpg" data-size="normal" data-rawwidth="765" data-rawheight="347" class="origin_image zh-lightbox-thumb" width="765" data-original="https://pic3.zhimg.com/v2-ecca57c762033ca3f1d490c5d88b3f02_b.jpg" title="v2-ecca57c762033ca3f1d490c5d88b3f02_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-ecca57c762033ca3f1d490c5d88b3f02_r.jpg" data-size="normal" data-rawwidth="765" data-rawheight="347" class="origin_image zh-lightbox-thumb lazy" width="765" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='765'%20height='347'&gt;&lt;/svg&gt;" data-actualsrc="https://pic3.zhimg.com/v2-ecca57c762033ca3f1d490c5d88b3f02_b.jpg" title="v2-ecca57c762033ca3f1d490c5d88b3f02_r"><figcaption>命令行運行介面</figcaption></figure>
<p data-pid="EZTqBbZG">運行時會打開瀏覽器，測試完成後會自動關閉。 在命令行的最下方，會有報告輸出的位址，內容跟上圖的報告截圖一致。 更多參數可以參考 <a href="https://link.zhihu.com/?target=https%3A//github.com/GoogleChrome/lighthouse" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">github文件</a></p>
<h2>使用Node Module運行</h2>
<p data-pid="7sizk_yg">使用Node Module可以以程式設計方式使用Lighthouse，喜歡折騰的可以參考<a href="https://link.zhihu.com/?target=https%3A//github.com/GoogleChrome/lighthouse/blob/master/docs/readme.md%23using-programmatically" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">官方例子</a>，其實測試的話用上面的方法也夠了，這裡就不說明瞭。</p>
<h2>總結</h2>
<p data-pid="QI1F8y3s">文章簡單的介紹了下 Lighthouse，也是因為自己網站需要用到，所以在這裡做了個記錄分享給大家，還沒有試過的朋友可以看下，歡迎大家進行交流。</p>
</div>
</div>
</div>
</article>
<h3 style="padding: 15px 0; margin-top:30px;">想了解更多關於 Facebook 與 Google 廣告投放？</h3>
<ul>
<li><a href="https://tenten.co/learning/google-ads-vs-facebook-ads/" data-wpel-link="internal" rel="noopener noreferrer">Google Ads 與 Facebook Ads：哪個更適合您的 2022 年廣告策略？</a></li>
<li><a href="https://university.tenten.co/t/adtech-header-bidding/1087/" data-wpel-link="external" rel="nofollow external noopener noreferrer">AD Tech - 廣告科技總整理</a></li>
</ul>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/software-engineering/front-end-dev/38131/topic-103718894/" data-wpel-link="internal">使用 Lighthouse檢查及優化Web應用</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>開發人員必備！ 6大不可缺少的工具</title>
		<link>https://hypergrowths.com/software-engineering/front-end-dev/38119/topic-126679483/</link>
		
		<dc:creator><![CDATA[marketer]]></dc:creator>
		<pubDate>Tue, 30 Nov 2021 04:40:33 +0000</pubDate>
				<category><![CDATA[前端開發]]></category>
		<guid isPermaLink="false">https://hypergrowths.com/software-engineering/front-end-dev/38119/topic-126679483/</guid>

					<description><![CDATA[<p>全文共1596字，預計學習時長7分鐘 工欲善其事，必先利其器。 優秀的工具對於開發人員來講必不可少，它們能助你打通任督二脈，工作效率大大提升。 每個人都有自己用慣了的工具，本文將介紹6種我認為必備的工具，你不...</p>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/software-engineering/front-end-dev/38119/topic-126679483/" data-wpel-link="internal">開發人員必備！ 6大不可缺少的工具</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></description>
										<content:encoded><![CDATA[<article class="Post-Main Post-NormalMain" tabindex="-1">
<header class="Post-Header">
<h1 class="Post-Title">開發人員必備！ 6大不可缺少的工具</h1>
<div class="Post-Author">
<div class="AuthorInfo" itemprop="author" itemscope="" itemtype="http://schema.org/Person">
<div class="AuthorInfo"><meta itemprop="name" content="读芯术"><meta itemprop="image" content="https://pic3.zhimg.com/v2-a67e003b1f380e6ab13f373c7d3e5df1_l.jpg?source=172ae18b"><meta itemprop="url" content="https://www.zhihu.com/people/du-xin-zhu-ai-discovery"><meta itemprop="zhihu:followerCount"></div>
</div>
</div>
</header>
<div class="Post-RichTextContainer">
<style data-emotion-css="1yuhvjn">.css-1yuhvjn{margin-top:16px;}</style>
<div class="css-1yuhvjn">
<style data-emotion-css="3jt6os">.css-3jt6os .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-3jt6os .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-3jt6os .FileLinkCard-info{margin-left:12px;}.css-3jt6os .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-3jt6os .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-3jt6os .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="1wr1m8">.css-1wr1m8 .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-1wr1m8 .LinkCard.new,.css-1wr1m8 .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-1wr1m8 .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-1wr1m8 .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-1wr1m8 .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-1wr1m8 .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-1wr1m8 .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-1wr1m8 .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-1wr1m8 .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-1wr1m8 .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-1wr1m8 .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-1wr1m8 .LinkCard.old,.css-1wr1m8 .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}</style>
<style data-emotion-css="hypxot">.css-hypxot .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hypxot .LinkCard.old,.css-hypxot .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hypxot .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hypxot .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hypxot .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hypxot .LinkCard.new,.css-hypxot .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hypxot .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hypxot .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hypxot .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hypxot .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hypxot .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hypxot .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hypxot .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hypxot .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hypxot .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hypxot .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hypxot .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hypxot .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hypxot .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hypxot .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hypxot .FileLinkCard-info{margin-left:12px;}.css-hypxot .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hypxot .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="hnrfcf animation-1sh55c5">.css-hnrfcf{word-break:break-word;line-height:1.6;}.css-hnrfcf a.UserLink-link{color:#175199;}.css-hnrfcf a.UserLink-link:hover{border-bottom:1px solid #175199;}.css-hnrfcf lazy[data-lazy-status]{background-color:#F6F6F6;}.css-hnrfcf lazy[data-lazy-status="ok"]{background-color:transparent;-webkit-animation:animation-1sh55c5 0.5s ease-in;animation:animation-1sh55c5 0.5s ease-in;}.css-hnrfcf > *:first-of-type{margin-top:0;}.css-hnrfcf > :last-child{margin-bottom:0;}.css-hnrfcf h1,.css-hnrfcf h2{clear:left;margin-top:calc((1.4em * 2) / 1.2);margin-bottom:calc(1.4em / 1.2);font-size:1.2em;line-height:1.5;font-weight:600;}.css-hnrfcf h3,.css-hnrfcf h4,.css-hnrfcf h5,.css-hnrfcf h6{clear:left;margin-top:calc((1.4em * 1.5) / 1.1);margin-bottom:calc(1.4em / 1.1);font-size:1.1em;line-height:1.5;font-weight:600;}.css-hnrfcf u{-webkit-text-decoration:none;text-decoration:none;border-bottom:1px dashed #808080;}.css-hnrfcf b{font-weight:600;}.css-hnrfcf sup{font-size:0.8em;}.css-hnrfcf sup[data-draft-type='reference']{color:#175199;}.css-hnrfcf a:focus{outline:none;-webkit-transition:box-shadow 0.3s;transition:box-shadow 0.3s;}html[data-focus-visible] .css-hnrfcf a:focus{box-shadow:0 0 0 2px #FFFFFF,0 0 0 4px rgba(0,102,255,0.3);}.css-hnrfcf a.ztext-link,.css-hnrfcf a.internal,.css-hnrfcf a.external{-webkit-text-decoration:none;text-decoration:none;cursor:pointer;border-bottom:1px solid #808080;}.css-hnrfcf a.ztext-link:hover,.css-hnrfcf a.internal:hover,.css-hnrfcf a.external:hover{color:#175199;border-bottom:1px solid #175199;}.css-hnrfcf a.ztext-link > .ellipsis::after,.css-hnrfcf a.internal > .ellipsis::after,.css-hnrfcf a.external > .ellipsis::after{content:'...';}.css-hnrfcf a.ztext-link > .invisible,.css-hnrfcf a.internal > .invisible,.css-hnrfcf a.external > .invisible{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;}.css-hnrfcf a.ztext-link u,.css-hnrfcf a.internal u,.css-hnrfcf a.external u{border:none;}.css-hnrfcf a.member_mention{color:#175199;}.css-hnrfcf a.member_mention:hover{border-bottom:1px solid #175199;}.css-hnrfcf p{margin:1.4em 0;}.css-hnrfcf p.ztext-empty-paragraph{margin:calc((2.8em- (1.4em * 2 + 1.6em)) / 2) 0;}.css-hnrfcf p.ztext-empty-paragraph + .ztext-empty-paragraph{margin:1.4em 0;}.css-hnrfcf hr{margin:4em auto;width:240px;max-width:100%;border:none;border-top:1px solid #D3D3D3;}.css-hnrfcf img[eeimg]{max-width:100%;vertical-align:middle;}.css-hnrfcf img[eeimg="1"]{margin:0 3px;display:inline-block;}.css-hnrfcf img[eeimg="2"]{margin:1.4em 0;display:block;}.css-hnrfcf blockquote{margin:1.4em 0;padding-left:1em;color:#646464;border-left:3px solid #D3D3D3;}.css-hnrfcf ol,.css-hnrfcf ul{margin:1.4em 0;padding:0;}.css-hnrfcf ol ol,.css-hnrfcf ul ol,.css-hnrfcf ol ul,.css-hnrfcf ul ul{margin:0;}.css-hnrfcf ol > ol,.css-hnrfcf ul > ol,.css-hnrfcf ol > ul,.css-hnrfcf ul > ul{display:table-row;}.css-hnrfcf ol > ol::before,.css-hnrfcf ul > ol::before,.css-hnrfcf ol > ul::before,.css-hnrfcf ul > ul::before{display:table-cell;content:'';}.css-hnrfcf ul{display:table;}.css-hnrfcf ul>li{display:table-row;list-style:none;}.css-hnrfcf ul>li::before{display:table-cell;content:'&bull;  ';white-space:pre;}.css-hnrfcf ol{display:table;counter-reset:ol;}.css-hnrfcf ol > li{display:table-row;list-style:none;}.css-hnrfcf ol > li::before{display:table-cell;text-align:right;counter-increment:ol;content:counter(ol) '. ';white-space:pre;}.css-hnrfcf ol ol{counter-reset:ol2;}.css-hnrfcf ol ol li::before{counter-increment:ol2;content:counter(ol2) '. ';}.css-hnrfcf ol ol ol{counter-reset:ol3;}.css-hnrfcf ol ol ol li::before{counter-increment:ol3;content:counter(ol3) '. ';}.css-hnrfcf ol ol ol ol{counter-reset:ol4;}.css-hnrfcf ol ol ol ol li::before{counter-increment:ol4;content:counter(ol4) '. ';}.css-hnrfcf figure{margin:1.4em 0;}.css-hnrfcf figure .content_image,.css-hnrfcf figure .origin_image{margin:0 auto;}.css-hnrfcf figure figcaption{margin-top:calc(0.6em / 0.9);padding:0 1em;font-size:0.9em;line-height:1.5;text-align:center;color:#999999;}.css-hnrfcf figure + figure{margin-top:calc(1.4em * 1.6);}.css-hnrfcf figure[data-size='small'],.css-hnrfcf figure:not([data-size]) > [data-size='small']{clear:both;}.css-hnrfcf figure[data-size='left'],.css-hnrfcf figure:not([data-size]) > [data-size='left']{float:left;margin:0 20px 20px 0;max-width:33%;}.css-hnrfcf figure[data-size='right'],.css-hnrfcf figure:not([data-size]) > [data-size='right']{float:right;margin:0 0 20px 20px;max-width:33%;}.css-hnrfcf figure[data-size='collapse']{margin-bottom:0;}.css-hnrfcf figure[data-size='collapse'] + figure{margin-top:0;}.css-hnrfcf .content_image,.css-hnrfcf .origin_image{display:block;max-width:100%;margin:1.4em auto;}.css-hnrfcf .content_image[data-size='small'],.css-hnrfcf .origin_image[data-size='small']{max-width:40%;}.css-hnrfcf .content_image.zh-lightbox-thumb,.css-hnrfcf .origin_image.zh-lightbox-thumb{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in;}.css-hnrfcf code{margin:0 2px;padding:3px 4px;border-radius:3px;font-size:0.9em;background-color:#F6F6F6;}.css-hnrfcf pre{margin:1.4em 0;padding:calc(0.8em / 0.9);font-size:0.9em;word-break:initial;word-wrap:initial;white-space:pre;overflow:auto;-webkit-overflow-scrolling:touch;background:#F6F6F6;border-radius:4px;}.css-hnrfcf pre code{margin:0;padding:0;font-size:inherit;border-radius:0;background-color:inherit;}.css-hnrfcf li pre{white-space:pre-wrap;}.css-hnrfcf table[data-draft-type='table']{border-collapse:collapse;font-size:15px;margin:1.4em auto;max-width:100%;table-layout:fixed;text-align:left;width:100%;}.css-hnrfcf table[data-draft-type='table'][data-size='small']{min-width:260px;width:40%;}.css-hnrfcf table[data-draft-type='table'][data-row-style='striped'] tr:nth-of-type(2n + 1){background:#F6F6F6;}.css-hnrfcf table[data-draft-type='table'] td,.css-hnrfcf table[data-draft-type='table'] th{border:1px solid #D3D3D3;line-height:24px;height:24px;padding:3px 12px;}.css-hnrfcf table[data-draft-type='table'] th{background:#EBEBEB;color:#121212;font-weight:500;}.css-hnrfcf .video-box,.css-hnrfcf .link-box{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin:1.4em 0;overflow:auto;white-space:normal;cursor:pointer;border:solid 1px #EBEBEB;border-radius:4px;}.css-hnrfcf .highlight{margin:1em 0;}.css-hnrfcf .highlight pre{margin:0;}.css-hnrfcf .highlight .hll{background-color:#FDFDFD;}.css-hnrfcf .highlight .c{font-style:italic;color:#999999;}.css-hnrfcf .highlight .err{color:#F1403C;}.css-hnrfcf .highlight .k{font-weight:600;}.css-hnrfcf .highlight .o{font-weight:600;}.css-hnrfcf .highlight .cm{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cp{font-weight:600;color:#999999;}.css-hnrfcf .highlight .c1{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cs{font-style:italic;font-weight:600;color:#999999;}.css-hnrfcf .highlight .gd{color:#FF3366;}.css-hnrfcf .highlight .ge{font-style:italic;}.css-hnrfcf .highlight .gr{color:#F1403C;}.css-hnrfcf .highlight .gh{color:#999999;}.css-hnrfcf .highlight .gi{color:#12b370;}.css-hnrfcf .highlight .go{color:#808080;}.css-hnrfcf .highlight .gp{color:#646464;}.css-hnrfcf .highlight .gs{font-weight:600;}.css-hnrfcf .highlight .gu{color:#999999;}.css-hnrfcf .highlight .gt{color:#F1403C;}.css-hnrfcf .highlight .kc{font-weight:600;}.css-hnrfcf .highlight .kd{font-weight:600;}.css-hnrfcf .highlight .kn{font-weight:600;}.css-hnrfcf .highlight .kp{font-weight:600;}.css-hnrfcf .highlight .kr{font-weight:600;}.css-hnrfcf .highlight .kt{font-weight:600;color:#175199;}.css-hnrfcf .highlight .m{color:#0066FF;}.css-hnrfcf .highlight .s{color:#F1403C;}.css-hnrfcf .highlight .na{color:#0066FF;}.css-hnrfcf .highlight .nb{color:#0066FF;}.css-hnrfcf .highlight .nc{font-weight:600;color:#175199;}.css-hnrfcf .highlight .no{color:#0066FF;}.css-hnrfcf .highlight .ni{color:#5868D1;}.css-hnrfcf .highlight .ne{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nf{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nn{color:#646464;}.css-hnrfcf .highlight .nt{color:#175199;}.css-hnrfcf .highlight .nv{color:#0066FF;}.css-hnrfcf .highlight .ow{font-weight:600;}.css-hnrfcf .highlight .w{color:#BFBFBF;}.css-hnrfcf .highlight .mf{color:#0066FF;}.css-hnrfcf .highlight .mh{color:#0066FF;}.css-hnrfcf .highlight .mi{color:#0066FF;}.css-hnrfcf .highlight .mo{color:#0066FF;}.css-hnrfcf .highlight .sb{color:#F1403C;}.css-hnrfcf .highlight .sc{color:#F1403C;}.css-hnrfcf .highlight .sd{color:#F1403C;}.css-hnrfcf .highlight .s2{color:#F1403C;}.css-hnrfcf .highlight .se{color:#F1403C;}.css-hnrfcf .highlight .sh{color:#F1403C;}.css-hnrfcf .highlight .si{color:#F1403C;}.css-hnrfcf .highlight .sx{color:#F1403C;}.css-hnrfcf .highlight .sr{color:#C2A469;}.css-hnrfcf .highlight .s1{color:#F1403C;}.css-hnrfcf .highlight .ss{color:#F1403C;}.css-hnrfcf .highlight .bp{color:#999999;}.css-hnrfcf .highlight .vc{color:#0066FF;}.css-hnrfcf .highlight .vg{color:#0066FF;}.css-hnrfcf .highlight .vi{color:#0066FF;}.css-hnrfcf .highlight .il{color:#0066FF;}.css-hnrfcf .highlight::-webkit-scrollbar{width:6px;height:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal{background-color:rgba(18,18,18,0.5);border-radius:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal:hover{background-color:rgba(18,18,18,0.6);}.css-hnrfcf .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hnrfcf .LinkCard.old,.css-hnrfcf .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hnrfcf .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hnrfcf .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hnrfcf .LinkCard.new,.css-hnrfcf .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hnrfcf .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hnrfcf .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hnrfcf .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hnrfcf .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hnrfcf .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hnrfcf .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hnrfcf .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hnrfcf .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hnrfcf .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hnrfcf .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hnrfcf .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hnrfcf .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hnrfcf .FileLinkCard-info{margin-left:12px;}.css-hnrfcf .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hnrfcf .FileLinkCard-source{white-space:pre;}@-webkit-keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}@keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}</style>
<div class="RichText ztext Post-RichText css-hnrfcf" options="[object Object]">
<blockquote data-pid="Id1AI3ZH"><p>全文共1596字，預計學習時長7分鐘</p></blockquote>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-9b3df1bdf8916c37a16f8f373e9ae53d_r.jpg" data-size="normal" data-rawwidth="640" data-rawheight="457" class="origin_image zh-lightbox-thumb" width="640" data-original="https://pic2.zhimg.com/v2-9b3df1bdf8916c37a16f8f373e9ae53d_b.jpg" title="v2-9b3df1bdf8916c37a16f8f373e9ae53d_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-9b3df1bdf8916c37a16f8f373e9ae53d_r.jpg" data-size="normal" data-rawwidth="640" data-rawheight="457" class="origin_image zh-lightbox-thumb lazy" width="640" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='640'%20height='457'&gt;&lt;/svg&gt;" data-actualsrc="https://pic2.zhimg.com/v2-9b3df1bdf8916c37a16f8f373e9ae53d_b.jpg" title="v2-9b3df1bdf8916c37a16f8f373e9ae53d_r"><figcaption>圖源：unsplash</figcaption></figure>
<p class="ztext-empty-paragraph"></p>
<p data-pid="kMzCsDuV">工欲善其事，必先利其器。 優秀的工具對於開發人員來講必不可少，它們能助你打通任督二脈，工作效率大大提升。 每個人都有自己用慣了的工具，本文將介紹6種我認為必備的工具，你不妨試試看。</p>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-1b92beff6f98f0593d82e5ec1236d032_r.jpg" data-caption="" data-size="normal" data-rawwidth="800" data-rawheight="88" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic3.zhimg.com/v2-1b92beff6f98f0593d82e5ec1236d032_b.jpeg" title="v2-1b92beff6f98f0593d82e5ec1236d032_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-1b92beff6f98f0593d82e5ec1236d032_r.jpg" data-caption="" data-size="normal" data-rawwidth="800" data-rawheight="88" class="origin_image zh-lightbox-thumb lazy" width="800" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='800'%20height='88'&gt;&lt;/svg&gt;" data-actualsrc="https://pic3.zhimg.com/v2-1b92beff6f98f0593d82e5ec1236d032_b.jpeg" title="v2-1b92beff6f98f0593d82e5ec1236d032_r"></figure>
<h2>direnv</h2>
<p class="ztext-empty-paragraph"></p>
<p data-pid="Jyibdpod">direnv是一個shell擴展，當你用cd命令進入對應目錄時，它會自動載入環境變數。</p>
<p class="ztext-empty-paragraph"></p>
<p data-pid="g-Yp5znB">它超級省時，尤其是在處理多種專案時，這些專案都需要不同的ENV變數，甚至是相同ENV變數的不同值。 direnv安裝簡單，甚至更容易編寫.envrc文件，因為它只是一堆已經在.profile或. *rc文件中編寫的export BLAH=BLAH語句。</p>
<p class="ztext-empty-paragraph"></p>
<p data-pid="U4Hf6iGy">當把.envrc檔退出目錄之外時，direnv會自動取消設置這些ENV變數。 是不是很方便！</p>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-3dc86b03a3f719c938f14733959a5ccb_r.jpg" data-size="normal" data-rawwidth="640" data-rawheight="429" class="origin_image zh-lightbox-thumb" width="640" data-original="https://pic4.zhimg.com/v2-3dc86b03a3f719c938f14733959a5ccb_b.jpg" title="v2-3dc86b03a3f719c938f14733959a5ccb_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-3dc86b03a3f719c938f14733959a5ccb_r.jpg" data-size="normal" data-rawwidth="640" data-rawheight="429" class="origin_image zh-lightbox-thumb lazy" width="640" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='640'%20height='429'&gt;&lt;/svg&gt;" data-actualsrc="https://pic4.zhimg.com/v2-3dc86b03a3f719c938f14733959a5ccb_b.jpg" title="v2-3dc86b03a3f719c938f14733959a5ccb_r"><figcaption>圖源：unsplash</figcaption></figure>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-1b92beff6f98f0593d82e5ec1236d032_r.jpg" data-caption="" data-size="normal" data-rawwidth="800" data-rawheight="88" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic3.zhimg.com/v2-1b92beff6f98f0593d82e5ec1236d032_b.jpeg" title="v2-1b92beff6f98f0593d82e5ec1236d032_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-1b92beff6f98f0593d82e5ec1236d032_r.jpg" data-caption="" data-size="normal" data-rawwidth="800" data-rawheight="88" class="origin_image zh-lightbox-thumb lazy" width="800" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='800'%20height='88'&gt;&lt;/svg&gt;" data-actualsrc="https://pic3.zhimg.com/v2-1b92beff6f98f0593d82e5ec1236d032_b.jpeg" title="v2-1b92beff6f98f0593d82e5ec1236d032_r"></figure>
<h2>Lighthouse/ Chrome開發者工具</h2>
<p class="ztext-empty-paragraph"></p>
<p data-pid="2hVyz3Gj">Lighthouse（內置Chrome功能）是一個開源外掛程式，用於檢查網站性能。</p>
<p class="ztext-empty-paragraph"></p>
<p data-pid="byxgj55s">從文本壓縮到渲染阻塞資源，此工具掃描特定網站並生成一項報告以找出導致頁面速度下降的原因。 這對網站性能和可訪問性都非常重要。</p>
<p class="ztext-empty-paragraph"></p>
<p data-pid="qYEmaF-T">許多開發人員開始進行Web開發，主要學習組合美觀的網站。 然而性能原則經常被忽視了，其實性能與審美同樣重要。</p>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-9fff2ca1849864d51486f24256577907_r.jpg" data-size="normal" data-rawwidth="640" data-rawheight="427" class="origin_image zh-lightbox-thumb" width="640" data-original="https://pic4.zhimg.com/v2-9fff2ca1849864d51486f24256577907_b.jpg" title="v2-9fff2ca1849864d51486f24256577907_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-9fff2ca1849864d51486f24256577907_r.jpg" data-size="normal" data-rawwidth="640" data-rawheight="427" class="origin_image zh-lightbox-thumb lazy" width="640" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='640'%20height='427'&gt;&lt;/svg&gt;" data-actualsrc="https://pic4.zhimg.com/v2-9fff2ca1849864d51486f24256577907_b.jpg" title="v2-9fff2ca1849864d51486f24256577907_r"><figcaption>圖源：unsplash</figcaption></figure>
<p class="ztext-empty-paragraph"></p>
<p data-pid="384Azymx">有些網站規模太大，負載了過多資源，以致於緩慢的網速無法支撐運行，或者網頁流覽損耗行動裝置的電池。 不妨使用Lighthous，加速和優化您的網站。</p>
<p class="ztext-empty-paragraph"></p>
<p data-pid="tiuo3BBC">注意：此工具也可以通過Chrome web工具在本地託管的web伺服器上運行。 Cmd+Alt+I→審核選項→生成報告。</p>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-1b92beff6f98f0593d82e5ec1236d032_r.jpg" data-caption="" data-size="normal" data-rawwidth="800" data-rawheight="88" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic3.zhimg.com/v2-1b92beff6f98f0593d82e5ec1236d032_b.jpeg" title="v2-1b92beff6f98f0593d82e5ec1236d032_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-1b92beff6f98f0593d82e5ec1236d032_r.jpg" data-caption="" data-size="normal" data-rawwidth="800" data-rawheight="88" class="origin_image zh-lightbox-thumb lazy" width="800" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='800'%20height='88'&gt;&lt;/svg&gt;" data-actualsrc="https://pic3.zhimg.com/v2-1b92beff6f98f0593d82e5ec1236d032_b.jpeg" title="v2-1b92beff6f98f0593d82e5ec1236d032_r"></figure>
<h2>Oh My Zsh</h2>
<p class="ztext-empty-paragraph"></p>
<p data-pid="dNcYDzET">Oh My Zsh 是基於Z shell的美化配置，讓您的終端強大而美觀。</p>
<p class="ztext-empty-paragraph"></p>
<p data-pid="2bc6Em1W">除了各種主題，便捷功能和內置預設值之外，您還可以使用各種擴展功能外掛程式，包括Docker，Kubernetes Kubectl和tmux等。</p>
<p class="ztext-empty-paragraph"></p>
<p data-pid="clg-MPtN">我最喜歡的功能是tab命令補全和tab命令迴圈。 只要反覆按Tab鍵，便可以快速遍曆目錄和檔。</p>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-34eaf7d41f2ab975f9c217f0effbacd5_r.jpg" data-caption="" data-size="normal" data-rawwidth="638" data-rawheight="191" data-thumbnail="https://pic2.zhimg.com/v2-34eaf7d41f2ab975f9c217f0effbacd5_b.jpg" class="origin_image zh-lightbox-thumb" width="638" data-original="https://pic2.zhimg.com/v2-34eaf7d41f2ab975f9c217f0effbacd5_b.gif" title="v2-34eaf7d41f2ab975f9c217f0effbacd5_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-34eaf7d41f2ab975f9c217f0effbacd5_r.jpg" data-caption="" data-size="normal" data-rawwidth="638" data-rawheight="191" data-thumbnail="https://pic2.zhimg.com/v2-34eaf7d41f2ab975f9c217f0effbacd5_b.jpg" class="origin_image zh-lightbox-thumb lazy" width="638" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='638'%20height='191'&gt;&lt;/svg&gt;" data-actualsrc="https://pic2.zhimg.com/v2-34eaf7d41f2ab975f9c217f0effbacd5_b.gif" title="v2-34eaf7d41f2ab975f9c217f0effbacd5_r"></figure>
<p class="ztext-empty-paragraph"></p>
<p data-pid="nC8ZIxow">內核配置語句有多麼神奇？ 在需要説明的任何時候，它都會為我提供方案：</p>
<p class="ztext-empty-paragraph"></p>
<div class="highlight">
<pre><code class="language-text">[TIMESTAMP] USER:CURRENT_DIRECTORYVCS:(BRANCH) $</code></pre>
</div>
<p class="ztext-empty-paragraph"></p>
<p data-pid="avUXi-6s">此Oh My Zsh主題便是geoffgarside，而我在iTerm2中的配色方案是Tango Dark（探戈黑）。 在此處查看更多iTerm配色方案（<a href="https://link.zhihu.com/?target=https%3A//iterm2colorschemes.com/" class=" external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external"><span class="invisible">https://</span><span class="visible">iterm2colorschemes.com/</span></a>）。</p>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-1b92beff6f98f0593d82e5ec1236d032_r.jpg" data-caption="" data-size="normal" data-rawwidth="800" data-rawheight="88" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic3.zhimg.com/v2-1b92beff6f98f0593d82e5ec1236d032_b.jpeg" title="v2-1b92beff6f98f0593d82e5ec1236d032_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-1b92beff6f98f0593d82e5ec1236d032_r.jpg" data-caption="" data-size="normal" data-rawwidth="800" data-rawheight="88" class="origin_image zh-lightbox-thumb lazy" width="800" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='800'%20height='88'&gt;&lt;/svg&gt;" data-actualsrc="https://pic3.zhimg.com/v2-1b92beff6f98f0593d82e5ec1236d032_b.jpeg" title="v2-1b92beff6f98f0593d82e5ec1236d032_r"></figure>
<h2>vim-plug 和 MELPA Stable</h2>
<p class="ztext-empty-paragraph"></p>
<p data-pid="fp5qkQet">如果您是一個忠實的Vim或Emacs使用者，就會知道有很多超有用的外掛程式支援這兩大文本編輯器，可以化繁為簡。</p>
<p class="ztext-empty-paragraph"></p>
<p data-pid="-UEqsdlg">從語法高亮顯示到符號索引，這些外掛程式可以帶來些許便利，抑或讓您的文本編輯器變成自金屬音樂以來最新奇的事情。 例如，查看Emacs Live的Clojure功能。</p>
<p class="ztext-empty-paragraph"></p>
<p data-pid="rQlZkbxF">vim-plug和MELPA Stable分別是Vim和Emacs的外掛程式管理器。 使用這兩大神器來安裝所需的所有外掛程式，為您提供完美的內置體驗。</p>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-dcca1831b21c73fb1471d4d37a084eba_r.jpg" data-size="normal" data-rawwidth="638" data-rawheight="267" data-thumbnail="https://pic3.zhimg.com/v2-dcca1831b21c73fb1471d4d37a084eba_b.jpg" class="origin_image zh-lightbox-thumb" width="638" data-original="https://pic3.zhimg.com/v2-dcca1831b21c73fb1471d4d37a084eba_b.gif" title="v2-dcca1831b21c73fb1471d4d37a084eba_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-dcca1831b21c73fb1471d4d37a084eba_r.jpg" data-size="normal" data-rawwidth="638" data-rawheight="267" data-thumbnail="https://pic3.zhimg.com/v2-dcca1831b21c73fb1471d4d37a084eba_b.jpg" class="origin_image zh-lightbox-thumb lazy" width="638" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='638'%20height='267'&gt;&lt;/svg&gt;" data-actualsrc="https://pic3.zhimg.com/v2-dcca1831b21c73fb1471d4d37a084eba_b.gif" title="v2-dcca1831b21c73fb1471d4d37a084eba_r"><figcaption>使用vim-plug安裝/更新Vim外掛程式</figcaption></figure>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-1b92beff6f98f0593d82e5ec1236d032_r.jpg" data-caption="" data-size="normal" data-rawwidth="800" data-rawheight="88" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic3.zhimg.com/v2-1b92beff6f98f0593d82e5ec1236d032_b.jpeg" title="v2-1b92beff6f98f0593d82e5ec1236d032_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-1b92beff6f98f0593d82e5ec1236d032_r.jpg" data-caption="" data-size="normal" data-rawwidth="800" data-rawheight="88" class="origin_image zh-lightbox-thumb lazy" width="800" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='800'%20height='88'&gt;&lt;/svg&gt;" data-actualsrc="https://pic3.zhimg.com/v2-1b92beff6f98f0593d82e5ec1236d032_b.jpeg" title="v2-1b92beff6f98f0593d82e5ec1236d032_r"></figure>
<h2>The Silver Searcher (Ag)</h2>
<p class="ztext-empty-paragraph"></p>
<p data-pid="HS-nPU2J">大體上說，The Silver Searcher （簡稱Ag）是一個智慧迴圈的grep遞歸搜索。 雖然之前介紹的fzf適合搜索檔名，而Ag則很適合搜索文件內容以查找特定標記和匹配項。</p>
<p class="ztext-empty-paragraph"></p>
<p data-pid="66ktwhKd">Ag搜尋的優勢在於它會自動忽略.gitignore資料夾中的檔。 當grep-r在node_modules中拋出一堆不相關的匹配項時，Ag搜索會非常迅速，因為它只搜索重要的相關文件。</p>
<p class="ztext-empty-paragraph"></p>
<p data-pid="ofGbnDiS">默認情況下，Ag輸出結果還會為您提供行號。 從技術上講，您可以通過向grep提供大量參數來實現Ag搜索的所有功能，但Ag搜索的速度最終仍快幾倍，並且會越來越快。</p>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-73d0ab525aebfd9365916d58bd14c78b_r.jpg" data-caption="" data-size="normal" data-rawwidth="640" data-rawheight="326" data-thumbnail="https://pic4.zhimg.com/v2-73d0ab525aebfd9365916d58bd14c78b_b.jpg" class="origin_image zh-lightbox-thumb" width="640" data-original="https://pic4.zhimg.com/v2-73d0ab525aebfd9365916d58bd14c78b_b.gif" title="v2-73d0ab525aebfd9365916d58bd14c78b_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-73d0ab525aebfd9365916d58bd14c78b_r.jpg" data-caption="" data-size="normal" data-rawwidth="640" data-rawheight="326" data-thumbnail="https://pic4.zhimg.com/v2-73d0ab525aebfd9365916d58bd14c78b_b.jpg" class="origin_image zh-lightbox-thumb lazy" width="640" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='640'%20height='326'&gt;&lt;/svg&gt;" data-actualsrc="https://pic4.zhimg.com/v2-73d0ab525aebfd9365916d58bd14c78b_b.gif" title="v2-73d0ab525aebfd9365916d58bd14c78b_r"></figure>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-1b92beff6f98f0593d82e5ec1236d032_r.jpg" data-caption="" data-size="normal" data-rawwidth="800" data-rawheight="88" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic3.zhimg.com/v2-1b92beff6f98f0593d82e5ec1236d032_b.jpeg" title="v2-1b92beff6f98f0593d82e5ec1236d032_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-1b92beff6f98f0593d82e5ec1236d032_r.jpg" data-caption="" data-size="normal" data-rawwidth="800" data-rawheight="88" class="origin_image zh-lightbox-thumb lazy" width="800" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='800'%20height='88'&gt;&lt;/svg&gt;" data-actualsrc="https://pic3.zhimg.com/v2-1b92beff6f98f0593d82e5ec1236d032_b.jpeg" title="v2-1b92beff6f98f0593d82e5ec1236d032_r"></figure>
<h2>command-line fuzzy finder (fzf)</h2>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-6b343e173d34b700a7ed2b60db1909ab_r.jpg" data-size="normal" data-rawwidth="640" data-rawheight="481" class="origin_image zh-lightbox-thumb" width="640" data-original="https://pic4.zhimg.com/v2-6b343e173d34b700a7ed2b60db1909ab_b.jpg" title="v2-6b343e173d34b700a7ed2b60db1909ab_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-6b343e173d34b700a7ed2b60db1909ab_r.jpg" data-size="normal" data-rawwidth="640" data-rawheight="481" class="origin_image zh-lightbox-thumb lazy" width="640" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='640'%20height='481'&gt;&lt;/svg&gt;" data-actualsrc="https://pic4.zhimg.com/v2-6b343e173d34b700a7ed2b60db1909ab_b.jpg" title="v2-6b343e173d34b700a7ed2b60db1909ab_r"><figcaption>圖源：unsplash</figcaption></figure>
<p class="ztext-empty-paragraph"></p>
<p data-pid="xpQZQ_BU">命令行模糊查找器（簡稱fzf）是一種模糊搜索工具，用於快速查找目錄樹中的檔。 順便說一句，它是由製作vim-plug的工程師（Junegunn Choi）編寫的。</p>
<p class="ztext-empty-paragraph"></p>
<p data-pid="jEpEUMpt">這個工具由Go語言編寫，運行迅速。 並且使用併發線程來劃分和解決工作負載。</p>
<p class="ztext-empty-paragraph"></p>
<p data-pid="aG_TJBDj">為了更好地使用fzf，我在shell配置檔中設置了以下兩個別名：</p>
<p class="ztext-empty-paragraph"></p>
<div class="highlight">
<pre><code class="language-text">aliasv='nvim'
alias f='v <code>fzf -i</code>'</code></pre>
</div>
<p class="ztext-empty-paragraph"></p>
<p data-pid="PABHfLwx">我可以只鍵入字母v，然後輸入檔名以在Neovim中打開它。 將其與fzf結合使用以快速搜索特定檔。 fzf的輸出是帶有完整路徑的檔名。 然後，將其作為參數傳遞給我的v別名。</p>
<p class="ztext-empty-paragraph"></p>
<p data-pid="5RkHNCE7">結果如何？ 在Neovim中打開了Wicked快速檔搜索和Wicked快速檔。 生活真是美妙。</p>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-40a25994db022644bafc11105f890823_r.jpg" data-caption="" data-size="normal" data-rawwidth="640" data-rawheight="326" data-thumbnail="https://pic4.zhimg.com/v2-40a25994db022644bafc11105f890823_b.jpg" class="origin_image zh-lightbox-thumb" width="640" data-original="https://pic4.zhimg.com/v2-40a25994db022644bafc11105f890823_b.gif" title="v2-40a25994db022644bafc11105f890823_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-40a25994db022644bafc11105f890823_r.jpg" data-caption="" data-size="normal" data-rawwidth="640" data-rawheight="326" data-thumbnail="https://pic4.zhimg.com/v2-40a25994db022644bafc11105f890823_b.jpg" class="origin_image zh-lightbox-thumb lazy" width="640" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='640'%20height='326'&gt;&lt;/svg&gt;" data-actualsrc="https://pic4.zhimg.com/v2-40a25994db022644bafc11105f890823_b.gif" title="v2-40a25994db022644bafc11105f890823_r"></figure>
<p class="ztext-empty-paragraph"></p>
<p data-pid="9eDVcO2y">好的工具甚至能提升幸福感。 去試試這幾種工具吧，相信你很快就會有這樣的感覺！</p>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-9b6fcf2766b5d13b1e73c47ceb6d1310_r.jpg" data-caption="" data-size="normal" data-rawwidth="1080" data-rawheight="120" class="origin_image zh-lightbox-thumb" width="1080" data-original="https://pic1.zhimg.com/v2-9b6fcf2766b5d13b1e73c47ceb6d1310_b.jpeg" title="v2-9b6fcf2766b5d13b1e73c47ceb6d1310_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-9b6fcf2766b5d13b1e73c47ceb6d1310_r.jpg" data-caption="" data-size="normal" data-rawwidth="1080" data-rawheight="120" class="origin_image zh-lightbox-thumb lazy" width="1080" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='1080'%20height='120'&gt;&lt;/svg&gt;" data-actualsrc="https://pic1.zhimg.com/v2-9b6fcf2766b5d13b1e73c47ceb6d1310_b.jpeg" title="v2-9b6fcf2766b5d13b1e73c47ceb6d1310_r"></figure>
<p data-pid="4Y9bnF7n"><b>留言點讚關注</b></p>
<p data-pid="Cc56w8o_"><b>我們一起分享AI學習與發展的乾貨</b></p>
<p data-pid="MbJZvAr2">編譯組：吳亞芳、李韻帷</p>
<p data-pid="xZgmUQat">相關連結：<a href="https://link.zhihu.com/?target=https%3A//medium.com/better-programming/6-must-have-tools-for-developers-430fd56933dd" class=" external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external"><span class="invisible">https://</span><span class="visible">medium.com/better-progr</span><span class="invisible">amming/6-must-have-tools-for-developers-430fd56933dd</span></a></p>
<p data-pid="KCiRUzAP">如轉載，請私信小芯，遵守轉載規範</p>
</div>
</div>
</div>
</article>
<h3 style="padding: 15px 0; margin-top:30px;">想了解更多關於 Facebook 與 Google 廣告投放？</h3>
<ul>
<li><a href="https://tenten.co/learning/google-ads-vs-facebook-ads/" data-wpel-link="internal" rel="noopener noreferrer">Google Ads 與 Facebook Ads：哪個更適合您的 2022 年廣告策略？</a></li>
<li><a href="https://university.tenten.co/t/adtech-header-bidding/1087/" data-wpel-link="external" rel="nofollow external noopener noreferrer">AD Tech - 廣告科技總整理</a></li>
</ul>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/software-engineering/front-end-dev/38119/topic-126679483/" data-wpel-link="internal">開發人員必備！ 6大不可缺少的工具</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>自建站賣家如何提升網站流量？ 小海總結推薦5款谷歌SEO工具</title>
		<link>https://hypergrowths.com/software-engineering/front-end-dev/38117/topic-162395810/</link>
		
		<dc:creator><![CDATA[marketer]]></dc:creator>
		<pubDate>Tue, 30 Nov 2021 04:40:14 +0000</pubDate>
				<category><![CDATA[前端開發]]></category>
		<category><![CDATA[出海]]></category>
		<guid isPermaLink="false">https://hypergrowths.com/software-engineering/front-end-dev/38117/topic-162395810/</guid>

					<description><![CDATA[<p>欲善其事必先利其器，想要做好谷歌 SEO，提高網站排名增加流量，做好搜尋引擎優化，必須學會利用SEO工具。 以下5個頂尖谷歌SEO工具值得關注： 一、Chrome Lighthouse Lighthouse 是Chrome團隊的一個開源專案，能對...</p>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/software-engineering/front-end-dev/38117/topic-162395810/" data-wpel-link="internal">自建站賣家如何提升網站流量？ 小海總結推薦5款谷歌SEO工具</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></description>
										<content:encoded><![CDATA[<article class="Post-Main Post-NormalMain" tabindex="-1">
<header class="Post-Header">
<h1 class="Post-Title">自建站賣家如何提升網站流量？ 小海總結推薦5款谷歌SEO工具</h1>
<div class="Post-Author">
<div class="AuthorInfo" itemprop="author" itemscope="" itemtype="http://schema.org/Person">
<div class="AuthorInfo"><meta itemprop="name" content="国潮出海"><meta itemprop="image" content="https://pic3.zhimg.com/v2-f9eb893a23b8d4fab2b8d8e64a8beb9e_l.jpg?source=172ae18b"><meta itemprop="url" content="https://www.zhihu.com/people/hale-12"><meta itemprop="zhihu:followerCount"></div>
</div>
</div>
</header>
<div class="Post-RichTextContainer">
<style data-emotion-css="1yuhvjn">.css-1yuhvjn{margin-top:16px;}</style>
<div class="css-1yuhvjn">
<style data-emotion-css="3jt6os">.css-3jt6os .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-3jt6os .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-3jt6os .FileLinkCard-info{margin-left:12px;}.css-3jt6os .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-3jt6os .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-3jt6os .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="1wr1m8">.css-1wr1m8 .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-1wr1m8 .LinkCard.new,.css-1wr1m8 .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-1wr1m8 .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-1wr1m8 .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-1wr1m8 .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-1wr1m8 .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-1wr1m8 .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-1wr1m8 .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-1wr1m8 .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-1wr1m8 .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-1wr1m8 .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-1wr1m8 .LinkCard.old,.css-1wr1m8 .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}</style>
<style data-emotion-css="hypxot">.css-hypxot .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hypxot .LinkCard.old,.css-hypxot .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hypxot .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hypxot .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hypxot .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hypxot .LinkCard.new,.css-hypxot .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hypxot .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hypxot .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hypxot .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hypxot .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hypxot .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hypxot .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hypxot .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hypxot .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hypxot .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hypxot .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hypxot .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hypxot .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hypxot .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hypxot .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hypxot .FileLinkCard-info{margin-left:12px;}.css-hypxot .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hypxot .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="hnrfcf animation-1sh55c5">.css-hnrfcf{word-break:break-word;line-height:1.6;}.css-hnrfcf a.UserLink-link{color:#175199;}.css-hnrfcf a.UserLink-link:hover{border-bottom:1px solid #175199;}.css-hnrfcf lazy[data-lazy-status]{background-color:#F6F6F6;}.css-hnrfcf lazy[data-lazy-status="ok"]{background-color:transparent;-webkit-animation:animation-1sh55c5 0.5s ease-in;animation:animation-1sh55c5 0.5s ease-in;}.css-hnrfcf > *:first-of-type{margin-top:0;}.css-hnrfcf > :last-child{margin-bottom:0;}.css-hnrfcf h1,.css-hnrfcf h2{clear:left;margin-top:calc((1.4em * 2) / 1.2);margin-bottom:calc(1.4em / 1.2);font-size:1.2em;line-height:1.5;font-weight:600;}.css-hnrfcf h3,.css-hnrfcf h4,.css-hnrfcf h5,.css-hnrfcf h6{clear:left;margin-top:calc((1.4em * 1.5) / 1.1);margin-bottom:calc(1.4em / 1.1);font-size:1.1em;line-height:1.5;font-weight:600;}.css-hnrfcf u{-webkit-text-decoration:none;text-decoration:none;border-bottom:1px dashed #808080;}.css-hnrfcf b{font-weight:600;}.css-hnrfcf sup{font-size:0.8em;}.css-hnrfcf sup[data-draft-type='reference']{color:#175199;}.css-hnrfcf a:focus{outline:none;-webkit-transition:box-shadow 0.3s;transition:box-shadow 0.3s;}html[data-focus-visible] .css-hnrfcf a:focus{box-shadow:0 0 0 2px #FFFFFF,0 0 0 4px rgba(0,102,255,0.3);}.css-hnrfcf a.ztext-link,.css-hnrfcf a.internal,.css-hnrfcf a.external{-webkit-text-decoration:none;text-decoration:none;cursor:pointer;border-bottom:1px solid #808080;}.css-hnrfcf a.ztext-link:hover,.css-hnrfcf a.internal:hover,.css-hnrfcf a.external:hover{color:#175199;border-bottom:1px solid #175199;}.css-hnrfcf a.ztext-link > .ellipsis::after,.css-hnrfcf a.internal > .ellipsis::after,.css-hnrfcf a.external > .ellipsis::after{content:'...';}.css-hnrfcf a.ztext-link > .invisible,.css-hnrfcf a.internal > .invisible,.css-hnrfcf a.external > .invisible{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;}.css-hnrfcf a.ztext-link u,.css-hnrfcf a.internal u,.css-hnrfcf a.external u{border:none;}.css-hnrfcf a.member_mention{color:#175199;}.css-hnrfcf a.member_mention:hover{border-bottom:1px solid #175199;}.css-hnrfcf p{margin:1.4em 0;}.css-hnrfcf p.ztext-empty-paragraph{margin:calc((2.8em- (1.4em * 2 + 1.6em)) / 2) 0;}.css-hnrfcf p.ztext-empty-paragraph + .ztext-empty-paragraph{margin:1.4em 0;}.css-hnrfcf hr{margin:4em auto;width:240px;max-width:100%;border:none;border-top:1px solid #D3D3D3;}.css-hnrfcf img[eeimg]{max-width:100%;vertical-align:middle;}.css-hnrfcf img[eeimg="1"]{margin:0 3px;display:inline-block;}.css-hnrfcf img[eeimg="2"]{margin:1.4em 0;display:block;}.css-hnrfcf blockquote{margin:1.4em 0;padding-left:1em;color:#646464;border-left:3px solid #D3D3D3;}.css-hnrfcf ol,.css-hnrfcf ul{margin:1.4em 0;padding:0;}.css-hnrfcf ol ol,.css-hnrfcf ul ol,.css-hnrfcf ol ul,.css-hnrfcf ul ul{margin:0;}.css-hnrfcf ol > ol,.css-hnrfcf ul > ol,.css-hnrfcf ol > ul,.css-hnrfcf ul > ul{display:table-row;}.css-hnrfcf ol > ol::before,.css-hnrfcf ul > ol::before,.css-hnrfcf ol > ul::before,.css-hnrfcf ul > ul::before{display:table-cell;content:'';}.css-hnrfcf ul{display:table;}.css-hnrfcf ul>li{display:table-row;list-style:none;}.css-hnrfcf ul>li::before{display:table-cell;content:'&bull;  ';white-space:pre;}.css-hnrfcf ol{display:table;counter-reset:ol;}.css-hnrfcf ol > li{display:table-row;list-style:none;}.css-hnrfcf ol > li::before{display:table-cell;text-align:right;counter-increment:ol;content:counter(ol) '. ';white-space:pre;}.css-hnrfcf ol ol{counter-reset:ol2;}.css-hnrfcf ol ol li::before{counter-increment:ol2;content:counter(ol2) '. ';}.css-hnrfcf ol ol ol{counter-reset:ol3;}.css-hnrfcf ol ol ol li::before{counter-increment:ol3;content:counter(ol3) '. ';}.css-hnrfcf ol ol ol ol{counter-reset:ol4;}.css-hnrfcf ol ol ol ol li::before{counter-increment:ol4;content:counter(ol4) '. ';}.css-hnrfcf figure{margin:1.4em 0;}.css-hnrfcf figure .content_image,.css-hnrfcf figure .origin_image{margin:0 auto;}.css-hnrfcf figure figcaption{margin-top:calc(0.6em / 0.9);padding:0 1em;font-size:0.9em;line-height:1.5;text-align:center;color:#999999;}.css-hnrfcf figure + figure{margin-top:calc(1.4em * 1.6);}.css-hnrfcf figure[data-size='small'],.css-hnrfcf figure:not([data-size]) > [data-size='small']{clear:both;}.css-hnrfcf figure[data-size='left'],.css-hnrfcf figure:not([data-size]) > [data-size='left']{float:left;margin:0 20px 20px 0;max-width:33%;}.css-hnrfcf figure[data-size='right'],.css-hnrfcf figure:not([data-size]) > [data-size='right']{float:right;margin:0 0 20px 20px;max-width:33%;}.css-hnrfcf figure[data-size='collapse']{margin-bottom:0;}.css-hnrfcf figure[data-size='collapse'] + figure{margin-top:0;}.css-hnrfcf .content_image,.css-hnrfcf .origin_image{display:block;max-width:100%;margin:1.4em auto;}.css-hnrfcf .content_image[data-size='small'],.css-hnrfcf .origin_image[data-size='small']{max-width:40%;}.css-hnrfcf .content_image.zh-lightbox-thumb,.css-hnrfcf .origin_image.zh-lightbox-thumb{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in;}.css-hnrfcf code{margin:0 2px;padding:3px 4px;border-radius:3px;font-size:0.9em;background-color:#F6F6F6;}.css-hnrfcf pre{margin:1.4em 0;padding:calc(0.8em / 0.9);font-size:0.9em;word-break:initial;word-wrap:initial;white-space:pre;overflow:auto;-webkit-overflow-scrolling:touch;background:#F6F6F6;border-radius:4px;}.css-hnrfcf pre code{margin:0;padding:0;font-size:inherit;border-radius:0;background-color:inherit;}.css-hnrfcf li pre{white-space:pre-wrap;}.css-hnrfcf table[data-draft-type='table']{border-collapse:collapse;font-size:15px;margin:1.4em auto;max-width:100%;table-layout:fixed;text-align:left;width:100%;}.css-hnrfcf table[data-draft-type='table'][data-size='small']{min-width:260px;width:40%;}.css-hnrfcf table[data-draft-type='table'][data-row-style='striped'] tr:nth-of-type(2n + 1){background:#F6F6F6;}.css-hnrfcf table[data-draft-type='table'] td,.css-hnrfcf table[data-draft-type='table'] th{border:1px solid #D3D3D3;line-height:24px;height:24px;padding:3px 12px;}.css-hnrfcf table[data-draft-type='table'] th{background:#EBEBEB;color:#121212;font-weight:500;}.css-hnrfcf .video-box,.css-hnrfcf .link-box{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin:1.4em 0;overflow:auto;white-space:normal;cursor:pointer;border:solid 1px #EBEBEB;border-radius:4px;}.css-hnrfcf .highlight{margin:1em 0;}.css-hnrfcf .highlight pre{margin:0;}.css-hnrfcf .highlight .hll{background-color:#FDFDFD;}.css-hnrfcf .highlight .c{font-style:italic;color:#999999;}.css-hnrfcf .highlight .err{color:#F1403C;}.css-hnrfcf .highlight .k{font-weight:600;}.css-hnrfcf .highlight .o{font-weight:600;}.css-hnrfcf .highlight .cm{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cp{font-weight:600;color:#999999;}.css-hnrfcf .highlight .c1{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cs{font-style:italic;font-weight:600;color:#999999;}.css-hnrfcf .highlight .gd{color:#FF3366;}.css-hnrfcf .highlight .ge{font-style:italic;}.css-hnrfcf .highlight .gr{color:#F1403C;}.css-hnrfcf .highlight .gh{color:#999999;}.css-hnrfcf .highlight .gi{color:#12b370;}.css-hnrfcf .highlight .go{color:#808080;}.css-hnrfcf .highlight .gp{color:#646464;}.css-hnrfcf .highlight .gs{font-weight:600;}.css-hnrfcf .highlight .gu{color:#999999;}.css-hnrfcf .highlight .gt{color:#F1403C;}.css-hnrfcf .highlight .kc{font-weight:600;}.css-hnrfcf .highlight .kd{font-weight:600;}.css-hnrfcf .highlight .kn{font-weight:600;}.css-hnrfcf .highlight .kp{font-weight:600;}.css-hnrfcf .highlight .kr{font-weight:600;}.css-hnrfcf .highlight .kt{font-weight:600;color:#175199;}.css-hnrfcf .highlight .m{color:#0066FF;}.css-hnrfcf .highlight .s{color:#F1403C;}.css-hnrfcf .highlight .na{color:#0066FF;}.css-hnrfcf .highlight .nb{color:#0066FF;}.css-hnrfcf .highlight .nc{font-weight:600;color:#175199;}.css-hnrfcf .highlight .no{color:#0066FF;}.css-hnrfcf .highlight .ni{color:#5868D1;}.css-hnrfcf .highlight .ne{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nf{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nn{color:#646464;}.css-hnrfcf .highlight .nt{color:#175199;}.css-hnrfcf .highlight .nv{color:#0066FF;}.css-hnrfcf .highlight .ow{font-weight:600;}.css-hnrfcf .highlight .w{color:#BFBFBF;}.css-hnrfcf .highlight .mf{color:#0066FF;}.css-hnrfcf .highlight .mh{color:#0066FF;}.css-hnrfcf .highlight .mi{color:#0066FF;}.css-hnrfcf .highlight .mo{color:#0066FF;}.css-hnrfcf .highlight .sb{color:#F1403C;}.css-hnrfcf .highlight .sc{color:#F1403C;}.css-hnrfcf .highlight .sd{color:#F1403C;}.css-hnrfcf .highlight .s2{color:#F1403C;}.css-hnrfcf .highlight .se{color:#F1403C;}.css-hnrfcf .highlight .sh{color:#F1403C;}.css-hnrfcf .highlight .si{color:#F1403C;}.css-hnrfcf .highlight .sx{color:#F1403C;}.css-hnrfcf .highlight .sr{color:#C2A469;}.css-hnrfcf .highlight .s1{color:#F1403C;}.css-hnrfcf .highlight .ss{color:#F1403C;}.css-hnrfcf .highlight .bp{color:#999999;}.css-hnrfcf .highlight .vc{color:#0066FF;}.css-hnrfcf .highlight .vg{color:#0066FF;}.css-hnrfcf .highlight .vi{color:#0066FF;}.css-hnrfcf .highlight .il{color:#0066FF;}.css-hnrfcf .highlight::-webkit-scrollbar{width:6px;height:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal{background-color:rgba(18,18,18,0.5);border-radius:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal:hover{background-color:rgba(18,18,18,0.6);}.css-hnrfcf .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hnrfcf .LinkCard.old,.css-hnrfcf .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hnrfcf .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hnrfcf .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hnrfcf .LinkCard.new,.css-hnrfcf .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hnrfcf .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hnrfcf .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hnrfcf .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hnrfcf .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hnrfcf .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hnrfcf .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hnrfcf .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hnrfcf .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hnrfcf .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hnrfcf .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hnrfcf .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hnrfcf .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hnrfcf .FileLinkCard-info{margin-left:12px;}.css-hnrfcf .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hnrfcf .FileLinkCard-source{white-space:pre;}@-webkit-keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}@keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}</style>
<div class="RichText ztext Post-RichText css-hnrfcf" options="[object Object]">
<p data-pid="05q8Ljtx">欲善其事必先利其器，想要做好谷歌 SEO，提高網站排名增加流量，做好搜尋引擎優化，必須學會利用SEO工具。 以下5個頂尖谷歌SEO工具值得關注：</p>
<p data-pid="U5pVvRFL">一、Chrome Lighthouse Lighthouse 是Chrome團隊的一個開源專案，能對網站的性能進行測評，同時還能生成一份詳盡的報告。 開發者可以將其作為一個 Chrome 擴展程式運行。 Lighthouse從以下10個指標入手，進行測評： 1、Viewport Meta 標籤 2、Title Element 3、Meta Description 4、HTTP 狀態碼 5、Descriptive Text on Links 6、Page Status for Successful Crawling &amp; Indexing（搜索引擎的抓取和索引旅程） 7、Validates Hreflang 8、Validates rel=canonical（Validates 驗證外掛程式） 9、Validates font legibility for mobile devices（移動設備字體可讀性） 10、Checks if document avoids browser plugins for viewing（檔能否免外掛程式查看）</p>
<p data-pid="mW-wOFEQ">二、TestMySite TestMySite主要審查3G移動網路下網頁的載入時間，監測網頁載入過程中遊客的流失情況，TestMySite會根據監控結果，向使用者提供完整的報告，包括如何提高特定網站的載入速度等，讓使用者快速了解網站的載入速度情況。 </p>
<p data-pid="aav70qV-">三、Page Speed Insights Page Speed Insights會對網站進行評分，讓用戶瞭解哪些圖片、腳本或樣式表正在降低網站的載入速度，並給出具體的優化建議。 相對TestMySite，Page Speed Insights會給出更多的細節訊息。 針對用戶網站可能存在的各類問題，Page Speed Insights會提供相應的連結，連接到Google Developers頁面，幫助使用者深度瞭解相關訊息。</p>
<p data-pid="dnyt6wB1">四、Safe Browsing Test Safe Browsing Test能夠檢測網站是否被插入了惡意軟體，檢測的頻率主要與網站更新頻率有關。</p>
<p data-pid="fQRXDNOX">五、谷歌趨勢（Google Trends） 谷歌趨勢為使用者提供關鍵詞熱度訊息，並根據關鍵詞的流行時間、地理方位進行細分，説明使用者了解時間對關鍵詞的影響，以及目前最熱的關鍵詞。 谷歌趨勢有利於使用者對競爭對手進行研究，了解競爭品牌的搜索量等。</p>
</div>
</div>
</div>
</article>
<h3 style="padding: 15px 0; margin-top:30px;">想了解更多關於 Facebook 與 Google 廣告投放？</h3>
<ul>
<li><a href="https://tenten.co/learning/google-ads-vs-facebook-ads/" data-wpel-link="internal" rel="noopener noreferrer">Google Ads 與 Facebook Ads：哪個更適合您的 2022 年廣告策略？</a></li>
<li><a href="https://university.tenten.co/t/adtech-header-bidding/1087/" data-wpel-link="external" rel="nofollow external noopener noreferrer">AD Tech - 廣告科技總整理</a></li>
</ul>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/software-engineering/front-end-dev/38117/topic-162395810/" data-wpel-link="internal">自建站賣家如何提升網站流量？ 小海總結推薦5款谷歌SEO工具</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>補齊Web前端性能分析的工具盲點</title>
		<link>https://hypergrowths.com/software-engineering/front-end-dev/38109/topic-208449902/</link>
		
		<dc:creator><![CDATA[marketer]]></dc:creator>
		<pubDate>Tue, 30 Nov 2021 04:39:40 +0000</pubDate>
				<category><![CDATA[前端開發]]></category>
		<category><![CDATA[被刪的前端世界]]></category>
		<guid isPermaLink="false">https://hypergrowths.com/software-engineering/front-end-dev/38109/topic-208449902/</guid>

					<description><![CDATA[<p>最近依然在研究大型專案，而大型專案最容易遇到的問題便是性能問題。 一般來說，當我們遇到性能瓶頸的時候，才會開始去進行相應的分析。 分析的方向除了業務本身的特點相關之外，常見的我們還可以借助一些工具來發現...</p>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/software-engineering/front-end-dev/38109/topic-208449902/" data-wpel-link="internal">補齊Web前端性能分析的工具盲點</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></description>
										<content:encoded><![CDATA[<article class="Post-Main Post-NormalMain" tabindex="-1">
<header class="Post-Header">
<h1 class="Post-Title">補齊Web前端性能分析的工具盲點</h1>
<div class="Post-Author">
<div class="AuthorInfo" itemprop="author" itemscope="" itemtype="http://schema.org/Person">
<div class="AuthorInfo"><meta itemprop="name" content="被删"><meta itemprop="image" content="https://pic2.zhimg.com/v2-3dcf963008af1957ebd5871a58ff875e_l.jpg?source=172ae18b"><meta itemprop="url" content="https://www.zhihu.com/people/godbasin"><meta itemprop="zhihu:followerCount"></div>
</div>
</div>
</header>
<div class="Post-RichTextContainer">
<style data-emotion-css="1yuhvjn">.css-1yuhvjn{margin-top:16px;}</style>
<div class="css-1yuhvjn">
<style data-emotion-css="3jt6os">.css-3jt6os .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-3jt6os .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-3jt6os .FileLinkCard-info{margin-left:12px;}.css-3jt6os .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-3jt6os .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-3jt6os .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="1wr1m8">.css-1wr1m8 .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-1wr1m8 .LinkCard.new,.css-1wr1m8 .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-1wr1m8 .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-1wr1m8 .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-1wr1m8 .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-1wr1m8 .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-1wr1m8 .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-1wr1m8 .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-1wr1m8 .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-1wr1m8 .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-1wr1m8 .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-1wr1m8 .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-1wr1m8 .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-1wr1m8 .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-1wr1m8 .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-1wr1m8 .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-1wr1m8 .LinkCard.old,.css-1wr1m8 .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-1wr1m8 .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-1wr1m8 .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}</style>
<style data-emotion-css="hypxot">.css-hypxot .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hypxot .LinkCard.old,.css-hypxot .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hypxot .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hypxot .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hypxot .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hypxot .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hypxot .LinkCard.new,.css-hypxot .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hypxot .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hypxot .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hypxot .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hypxot .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hypxot .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hypxot .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hypxot .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hypxot .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hypxot .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hypxot .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hypxot .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hypxot .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hypxot .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hypxot .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hypxot .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hypxot .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hypxot .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hypxot .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hypxot .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hypxot .FileLinkCard-info{margin-left:12px;}.css-hypxot .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hypxot .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hypxot .FileLinkCard-source{white-space:pre;}</style>
<style data-emotion-css="hnrfcf animation-1sh55c5">.css-hnrfcf{word-break:break-word;line-height:1.6;}.css-hnrfcf a.UserLink-link{color:#175199;}.css-hnrfcf a.UserLink-link:hover{border-bottom:1px solid #175199;}.css-hnrfcf lazy[data-lazy-status]{background-color:#F6F6F6;}.css-hnrfcf lazy[data-lazy-status="ok"]{background-color:transparent;-webkit-animation:animation-1sh55c5 0.5s ease-in;animation:animation-1sh55c5 0.5s ease-in;}.css-hnrfcf > *:first-of-type{margin-top:0;}.css-hnrfcf > :last-child{margin-bottom:0;}.css-hnrfcf h1,.css-hnrfcf h2{clear:left;margin-top:calc((1.4em * 2) / 1.2);margin-bottom:calc(1.4em / 1.2);font-size:1.2em;line-height:1.5;font-weight:600;}.css-hnrfcf h3,.css-hnrfcf h4,.css-hnrfcf h5,.css-hnrfcf h6{clear:left;margin-top:calc((1.4em * 1.5) / 1.1);margin-bottom:calc(1.4em / 1.1);font-size:1.1em;line-height:1.5;font-weight:600;}.css-hnrfcf u{-webkit-text-decoration:none;text-decoration:none;border-bottom:1px dashed #808080;}.css-hnrfcf b{font-weight:600;}.css-hnrfcf sup{font-size:0.8em;}.css-hnrfcf sup[data-draft-type='reference']{color:#175199;}.css-hnrfcf a:focus{outline:none;-webkit-transition:box-shadow 0.3s;transition:box-shadow 0.3s;}html[data-focus-visible] .css-hnrfcf a:focus{box-shadow:0 0 0 2px #FFFFFF,0 0 0 4px rgba(0,102,255,0.3);}.css-hnrfcf a.ztext-link,.css-hnrfcf a.internal,.css-hnrfcf a.external{-webkit-text-decoration:none;text-decoration:none;cursor:pointer;border-bottom:1px solid #808080;}.css-hnrfcf a.ztext-link:hover,.css-hnrfcf a.internal:hover,.css-hnrfcf a.external:hover{color:#175199;border-bottom:1px solid #175199;}.css-hnrfcf a.ztext-link > .ellipsis::after,.css-hnrfcf a.internal > .ellipsis::after,.css-hnrfcf a.external > .ellipsis::after{content:'...';}.css-hnrfcf a.ztext-link > .invisible,.css-hnrfcf a.internal > .invisible,.css-hnrfcf a.external > .invisible{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;}.css-hnrfcf a.ztext-link u,.css-hnrfcf a.internal u,.css-hnrfcf a.external u{border:none;}.css-hnrfcf a.member_mention{color:#175199;}.css-hnrfcf a.member_mention:hover{border-bottom:1px solid #175199;}.css-hnrfcf p{margin:1.4em 0;}.css-hnrfcf p.ztext-empty-paragraph{margin:calc((2.8em- (1.4em * 2 + 1.6em)) / 2) 0;}.css-hnrfcf p.ztext-empty-paragraph + .ztext-empty-paragraph{margin:1.4em 0;}.css-hnrfcf hr{margin:4em auto;width:240px;max-width:100%;border:none;border-top:1px solid #D3D3D3;}.css-hnrfcf img[eeimg]{max-width:100%;vertical-align:middle;}.css-hnrfcf img[eeimg="1"]{margin:0 3px;display:inline-block;}.css-hnrfcf img[eeimg="2"]{margin:1.4em 0;display:block;}.css-hnrfcf blockquote{margin:1.4em 0;padding-left:1em;color:#646464;border-left:3px solid #D3D3D3;}.css-hnrfcf ol,.css-hnrfcf ul{margin:1.4em 0;padding:0;}.css-hnrfcf ol ol,.css-hnrfcf ul ol,.css-hnrfcf ol ul,.css-hnrfcf ul ul{margin:0;}.css-hnrfcf ol > ol,.css-hnrfcf ul > ol,.css-hnrfcf ol > ul,.css-hnrfcf ul > ul{display:table-row;}.css-hnrfcf ol > ol::before,.css-hnrfcf ul > ol::before,.css-hnrfcf ol > ul::before,.css-hnrfcf ul > ul::before{display:table-cell;content:'';}.css-hnrfcf ul{display:table;}.css-hnrfcf ul>li{display:table-row;list-style:none;}.css-hnrfcf ul>li::before{display:table-cell;content:'&bull;  ';white-space:pre;}.css-hnrfcf ol{display:table;counter-reset:ol;}.css-hnrfcf ol > li{display:table-row;list-style:none;}.css-hnrfcf ol > li::before{display:table-cell;text-align:right;counter-increment:ol;content:counter(ol) '. ';white-space:pre;}.css-hnrfcf ol ol{counter-reset:ol2;}.css-hnrfcf ol ol li::before{counter-increment:ol2;content:counter(ol2) '. ';}.css-hnrfcf ol ol ol{counter-reset:ol3;}.css-hnrfcf ol ol ol li::before{counter-increment:ol3;content:counter(ol3) '. ';}.css-hnrfcf ol ol ol ol{counter-reset:ol4;}.css-hnrfcf ol ol ol ol li::before{counter-increment:ol4;content:counter(ol4) '. ';}.css-hnrfcf figure{margin:1.4em 0;}.css-hnrfcf figure .content_image,.css-hnrfcf figure .origin_image{margin:0 auto;}.css-hnrfcf figure figcaption{margin-top:calc(0.6em / 0.9);padding:0 1em;font-size:0.9em;line-height:1.5;text-align:center;color:#999999;}.css-hnrfcf figure + figure{margin-top:calc(1.4em * 1.6);}.css-hnrfcf figure[data-size='small'],.css-hnrfcf figure:not([data-size]) > [data-size='small']{clear:both;}.css-hnrfcf figure[data-size='left'],.css-hnrfcf figure:not([data-size]) > [data-size='left']{float:left;margin:0 20px 20px 0;max-width:33%;}.css-hnrfcf figure[data-size='right'],.css-hnrfcf figure:not([data-size]) > [data-size='right']{float:right;margin:0 0 20px 20px;max-width:33%;}.css-hnrfcf figure[data-size='collapse']{margin-bottom:0;}.css-hnrfcf figure[data-size='collapse'] + figure{margin-top:0;}.css-hnrfcf .content_image,.css-hnrfcf .origin_image{display:block;max-width:100%;margin:1.4em auto;}.css-hnrfcf .content_image[data-size='small'],.css-hnrfcf .origin_image[data-size='small']{max-width:40%;}.css-hnrfcf .content_image.zh-lightbox-thumb,.css-hnrfcf .origin_image.zh-lightbox-thumb{cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in;}.css-hnrfcf code{margin:0 2px;padding:3px 4px;border-radius:3px;font-size:0.9em;background-color:#F6F6F6;}.css-hnrfcf pre{margin:1.4em 0;padding:calc(0.8em / 0.9);font-size:0.9em;word-break:initial;word-wrap:initial;white-space:pre;overflow:auto;-webkit-overflow-scrolling:touch;background:#F6F6F6;border-radius:4px;}.css-hnrfcf pre code{margin:0;padding:0;font-size:inherit;border-radius:0;background-color:inherit;}.css-hnrfcf li pre{white-space:pre-wrap;}.css-hnrfcf table[data-draft-type='table']{border-collapse:collapse;font-size:15px;margin:1.4em auto;max-width:100%;table-layout:fixed;text-align:left;width:100%;}.css-hnrfcf table[data-draft-type='table'][data-size='small']{min-width:260px;width:40%;}.css-hnrfcf table[data-draft-type='table'][data-row-style='striped'] tr:nth-of-type(2n + 1){background:#F6F6F6;}.css-hnrfcf table[data-draft-type='table'] td,.css-hnrfcf table[data-draft-type='table'] th{border:1px solid #D3D3D3;line-height:24px;height:24px;padding:3px 12px;}.css-hnrfcf table[data-draft-type='table'] th{background:#EBEBEB;color:#121212;font-weight:500;}.css-hnrfcf .video-box,.css-hnrfcf .link-box{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;margin:1.4em 0;overflow:auto;white-space:normal;cursor:pointer;border:solid 1px #EBEBEB;border-radius:4px;}.css-hnrfcf .highlight{margin:1em 0;}.css-hnrfcf .highlight pre{margin:0;}.css-hnrfcf .highlight .hll{background-color:#FDFDFD;}.css-hnrfcf .highlight .c{font-style:italic;color:#999999;}.css-hnrfcf .highlight .err{color:#F1403C;}.css-hnrfcf .highlight .k{font-weight:600;}.css-hnrfcf .highlight .o{font-weight:600;}.css-hnrfcf .highlight .cm{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cp{font-weight:600;color:#999999;}.css-hnrfcf .highlight .c1{font-style:italic;color:#999999;}.css-hnrfcf .highlight .cs{font-style:italic;font-weight:600;color:#999999;}.css-hnrfcf .highlight .gd{color:#FF3366;}.css-hnrfcf .highlight .ge{font-style:italic;}.css-hnrfcf .highlight .gr{color:#F1403C;}.css-hnrfcf .highlight .gh{color:#999999;}.css-hnrfcf .highlight .gi{color:#12b370;}.css-hnrfcf .highlight .go{color:#808080;}.css-hnrfcf .highlight .gp{color:#646464;}.css-hnrfcf .highlight .gs{font-weight:600;}.css-hnrfcf .highlight .gu{color:#999999;}.css-hnrfcf .highlight .gt{color:#F1403C;}.css-hnrfcf .highlight .kc{font-weight:600;}.css-hnrfcf .highlight .kd{font-weight:600;}.css-hnrfcf .highlight .kn{font-weight:600;}.css-hnrfcf .highlight .kp{font-weight:600;}.css-hnrfcf .highlight .kr{font-weight:600;}.css-hnrfcf .highlight .kt{font-weight:600;color:#175199;}.css-hnrfcf .highlight .m{color:#0066FF;}.css-hnrfcf .highlight .s{color:#F1403C;}.css-hnrfcf .highlight .na{color:#0066FF;}.css-hnrfcf .highlight .nb{color:#0066FF;}.css-hnrfcf .highlight .nc{font-weight:600;color:#175199;}.css-hnrfcf .highlight .no{color:#0066FF;}.css-hnrfcf .highlight .ni{color:#5868D1;}.css-hnrfcf .highlight .ne{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nf{font-weight:600;color:#F1403C;}.css-hnrfcf .highlight .nn{color:#646464;}.css-hnrfcf .highlight .nt{color:#175199;}.css-hnrfcf .highlight .nv{color:#0066FF;}.css-hnrfcf .highlight .ow{font-weight:600;}.css-hnrfcf .highlight .w{color:#BFBFBF;}.css-hnrfcf .highlight .mf{color:#0066FF;}.css-hnrfcf .highlight .mh{color:#0066FF;}.css-hnrfcf .highlight .mi{color:#0066FF;}.css-hnrfcf .highlight .mo{color:#0066FF;}.css-hnrfcf .highlight .sb{color:#F1403C;}.css-hnrfcf .highlight .sc{color:#F1403C;}.css-hnrfcf .highlight .sd{color:#F1403C;}.css-hnrfcf .highlight .s2{color:#F1403C;}.css-hnrfcf .highlight .se{color:#F1403C;}.css-hnrfcf .highlight .sh{color:#F1403C;}.css-hnrfcf .highlight .si{color:#F1403C;}.css-hnrfcf .highlight .sx{color:#F1403C;}.css-hnrfcf .highlight .sr{color:#C2A469;}.css-hnrfcf .highlight .s1{color:#F1403C;}.css-hnrfcf .highlight .ss{color:#F1403C;}.css-hnrfcf .highlight .bp{color:#999999;}.css-hnrfcf .highlight .vc{color:#0066FF;}.css-hnrfcf .highlight .vg{color:#0066FF;}.css-hnrfcf .highlight .vi{color:#0066FF;}.css-hnrfcf .highlight .il{color:#0066FF;}.css-hnrfcf .highlight::-webkit-scrollbar{width:6px;height:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal{background-color:rgba(18,18,18,0.5);border-radius:6px;}.css-hnrfcf .highlight::-webkit-scrollbar-thumb:horizontal:hover{background-color:rgba(18,18,18,0.6);}.css-hnrfcf .LinkCard.old{position:relative;display:block;margin:1em auto;width:390px;box-sizing:border-box;border-radius:12px;max-width:100%;overflow:hidden;}.css-hnrfcf .LinkCard.old,.css-hnrfcf .LinkCard.old:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard-ecommerceLoadingCard{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;padding:12px;border-radius:inherit;height:80px;box-sizing:border-box;background:rgba(246,246,246,0.88);color:#D3D3D3;}.css-hnrfcf .LinkCard-ecommerceLoadingCardAvatarWrapper{width:60px;height:60px;background:#EBEBEB;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;border-radius:6px;margin-right:10px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardNetwork{width:20px;height:20px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar{height:60px;-webkit-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span{height:16px;display:inline-block;background:#EBEBEB;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(1){width:60px;margin-bottom:4px;}.css-hnrfcf .LinkCard-ecommerceLoadingCardLoadingbar span:nth-of-type(2){width:127px;}.css-hnrfcf .LinkCard.new{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-sizing:border-box;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:390px;min-height:84px;border-radius:8px;max-width:100%;overflow:hidden;margin:16px auto;padding:12px 12px 9px 12px;background-color:#F6F6F6;}.css-hnrfcf .LinkCard.new,.css-hnrfcf .LinkCard.new:hover{-webkit-text-decoration:none;text-decoration:none;border:none !important;color:inherit !important;}.css-hnrfcf .LinkCard.new .LinkCard-contents{display:block;-webkit-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto;position:relative;}.css-hnrfcf .LinkCard.new .LinkCard-contents .loading{height:14px;background:#EBEBEB;border-radius:7px;}.css-hnrfcf .LinkCard.new .LinkCard-contents.withTitle{margin-bottom:3px;}.css-hnrfcf .LinkCard.new .LinkCard-title{display:-webkit-box;font-size:15px;font-weight:500;line-height:1.4;margin-bottom:2px;color:#121212;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-title.two-line{line-height:20px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading{margin-bottom:8px;width:80%;}.css-hnrfcf .LinkCard.new .LinkCard-title.loading.withTitle{margin-bottom:6px;}.css-hnrfcf .LinkCard.new .LinkCard-title.loadingTitle{margin-bottom:5px;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt{display:-webkit-box;text-overflow:ellipsis;font-size:13px;line-height:18px;color:#999999;margin-bottom:4px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-excerpt .LinkCard-author{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-desc{display:-webkit-box;font-size:13px;height:18px;line-height:18px;color:#999999;word-break:break-all;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1;}.css-hnrfcf .LinkCard.new .LinkCard-desc .LinkCard-tag,.css-hnrfcf .LinkCard.new .LinkCard-desc .tag{display:inline-block;font-size:11px;margin-left:8px;padding:0 4px;border-radius:3px;background:rgba(211,211,211,0.3);}.css-hnrfcf .LinkCard.new .LinkCard-desc.loading{width:40%;}.css-hnrfcf .LinkCard.new .LinkCard-desc svg{margin-right:2px;}.css-hnrfcf .LinkCard.new .LinkCard-image{-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;background-color:#EBEBEB;background-size:cover;background-position:center;position:relative;display:block;width:60px;height:60px;margin-left:20px;object-fit:cover;border-radius:inherit;overflow:hidden;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;background-color:#EBEBEB;color:#D3D3D3;}.css-hnrfcf .LinkCard.new .LinkCard-image.LinkCard-image--default svg{color:#999999;}.css-hnrfcf .LinkCard.new .LinkCard-image img{width:100%;height:100%;object-fit:cover;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:50%;left:50%;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);width:24px;height:24px;border-radius:12px;background:rgba(255,255,255,0.9);pointer-events:none;}.css-hnrfcf .LinkCard.new .LinkCard-image .LinkCard-image--video svg{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .text{color:#444444;}.css-hnrfcf .LinkCard.new .LinkCard-richText .bold{font-weight:600;}.css-hnrfcf .LinkCard.new .LinkCard-richText .tag{margin-left:4px;}.css-hnrfcf .FileLinkCard{-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;background-color:rgba(246,246,246,0.88);border-radius:12px;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:1em auto;max-width:100%;overflow:hidden;padding:12px;position:relative;width:390px;}.css-hnrfcf .FileLinkCard-icon{-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;height:30px;width:30px;}.css-hnrfcf .FileLinkCard-info{margin-left:12px;}.css-hnrfcf .FileLinkCard-name{color:#121212;font-size:15px;font-weight:500;line-height:21px;display:-webkit-box;text-overflow:ellipsis;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;}.css-hnrfcf .FileLinkCard-meta{color:#999999;font-size:12px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;line-height:14px;margin-top:5px;}.css-hnrfcf .FileLinkCard-source{white-space:pre;}@-webkit-keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}@keyframes animation-1sh55c5{from{opacity:0;}to{opacity:1;}}</style>
<div class="RichText ztext Post-RichText css-hnrfcf" options="[object Object]">
<p data-pid="2xUdq_rD">最近依然在研究大型專案，而大型專案最容易遇到的問題便是性能問題。 一般來說，當我們遇到性能瓶頸的時候，才會開始去進行相應的分析。 分析的方向除了業務本身的特點相關之外，常見的我們還可以藉助一些工具來發現問題。 本文一起來研究下，前端性能分析可以怎麼走~</p>
<h2># 前端性能分析工具（Chrome DevTools）</h2>
<p data-pid="N91LvetZ">一般來說，前端的性能分析通常可以從<b>時間</b>和<b>空間</b>兩個角度來進行：</p>
<ul>
<li data-pid="iBx9CoT-"><b>時間</b>：常見耗時，如頁面載入耗時、渲染耗時、網路耗時、腳本執行耗時等</li>
<li data-pid="prtv7C0J"><b>空間</b>：資源佔用，包括CPU佔用、記憶體佔用、本地緩存佔用等</li>
</ul>
<p data-pid="zDo3kd-F">那麼，下面來看看有哪些常見的工具可以借來用用。 由於我們的網頁基本上跑在瀏覽器中，所以基本上大多數的工具都來源於瀏覽器自身提供，首當其衝的當然是 <a href="https://link.zhihu.com/?target=https%3A//developers.google.com/web/tools/chrome-devtools" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">Chrome DevTools</a>。 本文我們也主要圍繞 Chrome DevTools 來進行說明。</p>
<h2>## Lighthouse</h2>
<p data-pid="OutWhqCX"><a href="https://link.zhihu.com/?target=https%3A//github.com/GoogleChrome/lighthouse" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">Lighthouse</a> 的前身是 Chrome DevTools 面板中的 Audits。 在 Chrome 60 之前的版本中， 這個面板只包含網路使用率和頁面性能兩個測量類別，從 Chrome 60 版本開始， Audits 面板已經被 Lighthouse 的整合版取代。 而在最新版本的 Chrome 中，則需要單獨安裝 Lighthouse 拓展程式來使用，也可以通過腳本來使用。</p>
<h3>### 架構</h3>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-ef08c2bd8f8a3b8e0e79ec9f345f1ddb_r.jpg" data-caption="" data-size="normal" data-rawwidth="1105" data-rawheight="765" class="origin_image zh-lightbox-thumb" width="1105" data-original="https://pic4.zhimg.com/v2-ef08c2bd8f8a3b8e0e79ec9f345f1ddb_b.jpg" title="v2-ef08c2bd8f8a3b8e0e79ec9f345f1ddb_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-ef08c2bd8f8a3b8e0e79ec9f345f1ddb_r.jpg" data-caption="" data-size="normal" data-rawwidth="1105" data-rawheight="765" class="origin_image zh-lightbox-thumb lazy" width="1105" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='1105'%20height='765'&gt;&lt;/svg&gt;" data-actualsrc="https://pic4.zhimg.com/v2-ef08c2bd8f8a3b8e0e79ec9f345f1ddb_b.jpg" title="v2-ef08c2bd8f8a3b8e0e79ec9f345f1ddb_r"></figure>
<p class="ztext-empty-paragraph"></p>
<p data-pid="p712GWo_">下面是 Lighthouse 的組成部分：</p>
<ul>
<li data-pid="IyyKXuPE">驅動（Driver）：和 <a href="https://link.zhihu.com/?target=https%3A//chromedevtools.github.io/devtools-protocol/" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">Chrome Debugging Protocol</a> 進行互動的介面</li>
<li data-pid="8pHx802Q">收集器（Gatherers）：使用驅動程式收集頁面的訊息，收集器的輸出結果被稱為 Artifact</li>
<li data-pid="5E2bCKj9">審查器（Audits）：將 Artifact 作為輸入，審查器會對其運行測試，然後分配通過/失敗/得分的結果</li>
<li data-pid="63FKPK4b">報告（Report）：將審查的結果分組到面向用戶的報告中（如最佳實踐），對該部分應用加權和總體然後得出評分</li>
</ul>
<h3>### 主要功能</h3>
<p data-pid="5vY6amE-">Lighthouse 會在一系列的測試下運行網頁，比如不同尺寸的設備和不同的網路速度。 它還會檢查頁面對輔助功能指南的一致性，例如顏色對比度和ARIA最佳實踐。</p>
<p data-pid="a2X6gFwd">在比較短的時間內，Lighthouse 可以給出這樣一份報告（可將報告生成為 JSON 或 HTML）：</p>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-3968c534e61f20472d43a2e63a3a4fd1_r.jpg" data-caption="" data-size="normal" data-rawwidth="1850" data-rawheight="1850" class="origin_image zh-lightbox-thumb" width="1850" data-original="https://pic2.zhimg.com/v2-3968c534e61f20472d43a2e63a3a4fd1_b.jpg" title="v2-3968c534e61f20472d43a2e63a3a4fd1_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-3968c534e61f20472d43a2e63a3a4fd1_r.jpg" data-caption="" data-size="normal" data-rawwidth="1850" data-rawheight="1850" class="origin_image zh-lightbox-thumb lazy" width="1850" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='1850'%20height='1850'&gt;&lt;/svg&gt;" data-actualsrc="https://pic2.zhimg.com/v2-3968c534e61f20472d43a2e63a3a4fd1_b.jpg" title="v2-3968c534e61f20472d43a2e63a3a4fd1_r"></figure>
<p class="ztext-empty-paragraph"></p>
<p data-pid="NTiP6mYf">這份報告從 5 個方面來分析頁面： <b>效能</b>、<b>輔助功能</b>、<b>最佳實務</b>、<b>搜尋引擎最佳化</b>和 <b>PWA</b>。 像性能方面，會給出一些常見的耗時統計。 除此以外，還會給到一些詳細的優化方向。</p>
<p data-pid="axZTjnJY">如果你希望短時間內對你的網站進行較全面的評估，可以使用 Lighthouse 來跑一下分數，確定大致的優化方向。</p>
<h2>## Performance 面板</h2>
<p data-pid="fmw4GMgU"><a href="https://link.zhihu.com/?target=https%3A//developers.google.com/web/tools/chrome-devtools/evaluate-performance/reference" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">Performance</a> 面板同樣有個前身，叫 <a href="https://link.zhihu.com/?target=https%3A//developers.google.com/web/tools/chrome-devtools/evaluate-performance/timeline-tool%3Fhl%3Dzh-cn" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">Timeline</a>。 該面板用於記錄和分析<b>運行時性能</b>，運行時性能是頁面運行時（而不是載入）的性能。</p>
<h3>### 使用步驟</h3>
<p data-pid="-nETj3sr">Performance 面板功能特別多，具體的分析也可以單獨講一篇了。 這裡我們簡單說一下使用的步驟：</p>
<ol>
<li data-pid="quryxtl0">在隱身模式下打開 Chrome。 隱身模式可確保 Chrome 以乾淨狀態運行，例如瀏覽器的擴展可能會在性能評估中產生影響。</li>
<li data-pid="WzcxEkk0">在 DevTools 中，按兩下「Performance」選項卡，並進行一些基礎配置（更多參考<a href="https://link.zhihu.com/?target=https%3A//developers.google.com/web/tools/chrome-devtools/evaluate-performance" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">官方說明</a>）。</li>
<li data-pid="9u0IjWUF">按照提示按下記錄，開始記錄。 進行完相應的操作之後，點擊停止。</li>
<li data-pid="EnITUVhK">當頁面運行時，DevTools 捕獲性能指標。 停止記錄后，DevTools 處理數據，然後在 Performance 面板上顯示結果。</li>
</ol>
<h3>### 主要功能</h3>
<p data-pid="0hz-ozTL">關於 Performance 怎麼使用的文章特別多，大家網上隨便搜一下就能搜到。 一般來說，主要使用以下功能：</p>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-bb1fec87d4f041e94083b6d957e75395_r.jpg" data-caption="" data-size="normal" data-rawwidth="1264" data-rawheight="721" class="origin_image zh-lightbox-thumb" width="1264" data-original="https://pic2.zhimg.com/v2-bb1fec87d4f041e94083b6d957e75395_b.jpg" title="v2-bb1fec87d4f041e94083b6d957e75395_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-bb1fec87d4f041e94083b6d957e75395_r.jpg" data-caption="" data-size="normal" data-rawwidth="1264" data-rawheight="721" class="origin_image zh-lightbox-thumb lazy" width="1264" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='1264'%20height='721'&gt;&lt;/svg&gt;" data-actualsrc="https://pic2.zhimg.com/v2-bb1fec87d4f041e94083b6d957e75395_b.jpg" title="v2-bb1fec87d4f041e94083b6d957e75395_r"></figure>
<p class="ztext-empty-paragraph"></p>
<ul>
<li data-pid="UXqtWlKx"><b>查看 FPS 圖表</b>：當在 FPS 上方看到紅色條形時，表示幀速率下降得太低，以至於可能損害用戶體驗。 通常，綠色條越高，FPS 越高</li>
<li data-pid="Bn4vCQ3G"><b>查看 CPU 圖表</b>：CPU 圖表在 FPS 圖表下方。 CPU 圖表的顏色對應於性能板的底部的 Summary 選項卡</li>
<li data-pid="-Z_6jSx6"><b>查看 火焰圖</b>：火焰圖直觀地表示出了內部的CPU分析，橫軸是時間，縱軸是調用指標，調用棧最頂端的函數在最下方。 啟用 JS 分析器後，火焰圖會顯示數據的每個 JavaScript 函數，可用於分析具體函數</li>
<li data-pid="5qMw2SJO"><b>查看 Buttom-up</b>：此檢視可以看到某些函數對性能影響最大，並能夠檢查這些函數的調用路徑</li>
</ul>
<p data-pid="y-8gDF6Z">具體要怎麼定位某些性能瓶頸，可以參考<a href="https://link.zhihu.com/?target=https%3A//developers.google.com/web/tools/chrome-devtools/evaluate-performance/reference" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">官方文檔系列文章</a>，這裡就不詳細介紹啦。</p>
<h3>## Performance Monitor</h3>
<p data-pid="E063dCvC">打開 Chrome 控制台後，按組合鍵 <code>ctrl + p</code> （Mac 快速鍵為 <code>command + p</code> ），輸入 <code>&gt; Show Performance Monitor</code> ，就可以打開 Performance Monitor 性能監視器。 主要的監控指標包括：</p>
<ul>
<li data-pid="c8S44XPY">CPU usage：CPU 佔用率</li>
<li data-pid="XHSc-rJs">JS head size：JS 記憶體使用大小</li>
<li data-pid="8wNbtqUH">DOM Nodes：記憶體中掛載的 DOM 節點個數</li>
<li data-pid="MpiA6J4E">JS event listeners：事件監聽數</li>
<li data-pid="2vhfL01N">... ：其他等等</li>
</ul>
<p data-pid="5JAEHGzO">大多數情況下，我們在進行性能優化的時候，使用上面一些工具也足以確定大致的優化方向。 更多的細節和案例，就不在這裡詳述了。</p>
<h2># 前端性能監控</h2>
<p data-pid="5Hhgi58G">除了具體的性能分析和定位，我們也經常需要對業務進行性能監控。 前端性能監控包括兩種方式：合成監控（Synthetic Monitoring，SYN）、真實用戶監控（Real User Monitoring，RUM）。</p>
<h2>## 合成監控</h2>
<p data-pid="j8GFtrL4">合成監控就是在一個模擬場景里，去提交一個需要做性能審計的頁面，通過一系列的工具、規則去運行你的頁面，提取一些性能指標，得出一個審計報告。 例如上面介紹的 Lighthouse 就是合成監控。</p>
<p data-pid="ncIEXo9L">合成監控的使用場景不多，一般可能出現在開發和測試的過程中，例如結合流水線跑性能報告、定位性能問題時本地跑的一些簡單任務分析等。 該方式的優點顯而易見：</p>
<ul>
<li data-pid="kB9HoGxe">可採集更豐富的數據指標，例如結合 <a href="https://link.zhihu.com/?target=https%3A//chromedevtools.github.io/devtools-protocol/" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">Chrome Debugging Protocol</a> 獲取到的數據</li>
<li data-pid="3BezNtYI">較成熟的解決方案和工具，實現成本低</li>
<li data-pid="6j4dJxe0">不影響真實使用者的性能體驗</li>
</ul>
<h2>## 真實用戶監控</h2>
<p data-pid="wC-sT7uE">真實用戶監控，就是使用者在我們的頁面上訪問，訪問之後就會產生各種各樣的性能指標。 我們在使用者訪問結束的時候，把這些性能指標上傳到我們的日誌伺服器上，進行數據的提取清洗加工，最後在我們的監控平臺上進行展示的一個過程。</p>
<p data-pid="oyLI29TX">我們提及前端監控的時候，大多數都包括了真實用戶監控。 常見的一些性能監控包括載入耗時、DOM 渲染耗時、介面耗時統計等，而對於頁面載入過程，可以看到它被定義成了很多個階段：</p>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-cadd470a80b44b120a901dcdb3534704_r.jpg" data-caption="" data-size="normal" data-rawwidth="1662" data-rawheight="578" class="origin_image zh-lightbox-thumb" width="1662" data-original="https://pic1.zhimg.com/v2-cadd470a80b44b120a901dcdb3534704_b.jpg" title="v2-cadd470a80b44b120a901dcdb3534704_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-cadd470a80b44b120a901dcdb3534704_r.jpg" data-caption="" data-size="normal" data-rawwidth="1662" data-rawheight="578" class="origin_image zh-lightbox-thumb lazy" width="1662" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='1662'%20height='578'&gt;&lt;/svg&gt;" data-actualsrc="https://pic1.zhimg.com/v2-cadd470a80b44b120a901dcdb3534704_b.jpg" title="v2-cadd470a80b44b120a901dcdb3534704_r"></figure>
<p class="ztext-empty-paragraph"></p>
<p data-pid="G6ZMxfP9">而我們要做的，則是在力所能及的地方進行打點、計算、採集、上報，該過程常常需要藉助 Performance Timeline API。 將需要的數據發送到服務端，然後再對這些數據進行處理，最終通過可視化等方式進行監控。 因此，真實用戶監控往往需要結合業務本身的前後端架構設計來建設，其優點也比較容易理解：</p>
<ul>
<li data-pid="F1cG8l8g">完全還原真實場景，減去類比成本</li>
<li data-pid="9HNZAEDG">數據樣本足夠抹平個體的差異</li>
<li data-pid="O6McKrJe">採集數據可用於更多場景的分析和優化</li>
</ul>
<p data-pid="B_OBrC2w">對比合成監控，真實用戶監控在有些場景下無法拿到更多的性能分析數據（例如具體哪裡 CPU 佔用、記憶體佔用高），因此更多情況下作為優化效果來參考。 這些情況下，具體的分析和定位可能還是得依賴合成監控。</p>
<p data-pid="udQPAQUB">但真實用戶監控也有自身的優勢，例如 TCP、DNS 連接耗時過高，在各種環境下的一些運行耗時問題，合成監控是很難發現的。</p>
<h2># 性能分析自動化</h2>
<p data-pid="YYJf0LgJ">我們在開發過程中，也常常需要進行性能分析。 而前端的性能分析上手成本也不低，除了基本的頁面載入耗時、網路耗時，更具體的定位往往需要結合前面介紹的 Performance 面板、FPS、CPU、火焰圖等一點點來分析。</p>
<p data-pid="OBPV-qH2">如果這一塊想要往自動化方向發展，我們可以怎麼做呢？</p>
<h2>## 使用 Lighthouse</h2>
<p data-pid="S2fwmlng">前面也有介紹 Lighthouse，它提供了腳本的方式使用。 因此，我們可以通過自動化任務跑腳本的方式，使用 Lighthouse 跑分析報告，通過對比以往的數據來進行功能變更、性能優化等場景的性能回歸。</p>
<p data-pid="RXFQOcw1">使用 Lighthouse 的優勢在於開發成本低，只需要按照<a href="https://link.zhihu.com/?target=https%3A//github.com/GoogleChrome/lighthouse/blob/master/docs/configuration.md" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">官方提供的配置</a>來調整、獲取自己需要的一些數據，就可以快速接入較全面的 Lighthouse 擁有的性能分析能力。</p>
<p data-pid="o18_uqAN">不過由於 Lighthouse 同樣基於 HubSpot（Chrome DevTools Protocol），因此除了實現成本降低了，HubSpot 缺失的一些能力它也一樣會缺失。</p>
<h2>## Chrome DevTools Protocol</h2>
<p data-pid="SJHqNm1U"><a href="https://link.zhihu.com/?target=https%3A//chromedevtools.github.io/devtools-protocol/" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">Chrome DevTools Protocol</a> 允許第三方對基於 Chrome 的 Web 應用程式進行檢測、檢查、調試、分析等。 有了這個協議，我們就可以自己開發工具獲取 Chrome 的數據了。</p>
<h3>### 認識 Chrome DevTools 協定</h3>
<p data-pid="HmLoS8iU">Chrome DevTools 協定基於 WebSocket，利用 WebSocket 建立連接 DevTools 和瀏覽器內核的快速數據通道。</p>
<p data-pid="0yAQjDpp">我們使用的 Chrome DevTools 其實也是一個 Web 應用。 我們使用DevTools的時候，瀏覽器內核Chromium本身會作為一個服務端，我們看到的瀏覽器調試工具介面，通過Websocket和Chromium進行通信。 建立過程如下：</p>
<ol>
<li data-pid="2dCBRrbS">DevTools 將作為 Web 應用程式，Chromium 作為服務端提供連接。</li>
<li data-pid="h3pfowUT">通過 HTTP 提取 HTML、JavaScript 和 CSS 檔。</li>
<li data-pid="hUGOU3Ag">資源載入後，DevTools 會建立與瀏覽器的 Websocket 連接，並開始交換 JSON 消息。</li>
</ol>
<p data-pid="R3rXJg7W">同樣的，當我們通過 DevTools 從 Windows、Mac 或 Linux 計算機遠端調試 Android 設備上的即時內容時，使用的也是該協定。 當 Chromium 以一個 <code>--remote-debugging-port=0</code> 標誌啟動時，它將啟動 Chrome DevTools 協定伺服器。</p>
<h3>### Chrome DevTools 協定域劃分</h3>
<p data-pid="hWQGsgVv">Chrome DevTools協定具有與瀏覽器的許多不同部分（例如頁面、Service Worker 和擴充程式）進行互動的 API。 該協定把不同的操作劃分為了不同的域（domain），每個域負責不同的功能模組。 比如 <code>DOM</code> 、 、 、 和 <code>Debugger</code> <code>Network</code> <code>Console</code> <code>Performance</code> 等，可以理解為 DevTools 中的不同功能模組。</p>
<p data-pid="3QKWQL8p">使用該協定我們可以：</p>
<ul>
<li data-pid="tBtQ9x8C">獲取 JS 的 Runtime 數據，常用的如 <code>window.performance</code> 和 <code>window.chrome.loadTimes()</code> 等</li>
<li data-pid="5akAe4Y8">獲取 <code>Network</code> 及 <code>Performance</code> 數據，進行自動性能分析</li>
<li data-pid="jep0QaEG">使用 <a href="https://link.zhihu.com/?target=https%3A//github.com/GoogleChrome/lighthouse/blob/master/docs/puppeteer.md" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">Puppeteer</a> 的 <a href="https://link.zhihu.com/?target=https%3A//pptr.dev/%23%3Fproduct%3DPuppeteer%26version%3Dv1.13.0%26show%3Dapi-class-cdpsession" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">HubSpotSession</a>，與瀏覽器的協定通信會變得更加簡單</li>
</ul>
<h3>### 與性能相關的域</h3>
<p data-pid="_dWNe5j4">本文講性能分析相關，因此這裡我們只關注和性能相關的域。</p>
<p data-pid="8EyjeFpQ"><b>1. Performance。 </b> 從 <code>Performance</code> 域中 <code>Performance.getMetrics()</code> 可以拿到取得執行時效能指標包括：</p>
<ul>
<li data-pid="V5WHeqoL"><code>Timestamp</code>： 採取度量樣本的時間戳</li>
<li data-pid="2u2QGIdP"><code>Documents</code>： 頁面中的文件數</li>
<li data-pid="8Yyi3gDl"><code>Frames</code>： 頁面中的幀數</li>
<li data-pid="n9gy63wb"><code>JSEventListeners</code>： 頁面中的事件數</li>
<li data-pid="JfJJYYoE"><code>Nodes</code>： 頁面中的 DOM 節點數</li>
<li data-pid="KCJx6jf4"><code>LayoutCount</code>： 全部或部分頁面佈局的總數</li>
<li data-pid="g_OibSPw"><code>RecalcStyleCount</code>： 頁面樣式重新計算的總數</li>
<li data-pid="JwtPh8BR"><code>LayoutDuration</code>： 所有頁面佈局的合併持續時間</li>
<li data-pid="OABHwMf1"><code>RecalcStyleDuration</code>： 所有頁面樣式重新計算的總持續時間</li>
<li data-pid="hHwdbZkb"><code>ScriptDuration</code>： JavaScript 執行的持續時間</li>
<li data-pid="ecFeqSN4"><code>TaskDuration</code>： 瀏覽器執行的所有任務的合併持續時間</li>
<li data-pid="be6wof2K"><code>JSHeapUsedSize</code>： 使用的 JavaScript 棧大小</li>
<li data-pid="m1fMLyHr"><code>JSHeapTotalSize</code>： JavaScript 棧總大小</li>
</ul>
<p data-pid="IW8rhH2v"><b>2. Tracing。 </b> <code>Tracing</code> 域可獲取頁面載入的DevTools性能跟蹤。 可以使用 <code>Tracing.start</code> 和 <code>Tracing.stop</code> 創建可在 Chrome DevTools 或時間軸查看器中打開的跟蹤檔。</p>
<p data-pid="mIFrNRqz">我們能看到生成的 JSON 檔長這樣： </p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-9728a6297c5fa6b822f0bf49bf739a98_r.jpg" data-caption="" data-size="normal" data-rawwidth="1142" data-rawheight="575" class="origin_image zh-lightbox-thumb" width="1142" data-original="https://pic1.zhimg.com/v2-9728a6297c5fa6b822f0bf49bf739a98_b.jpg" title="v2-9728a6297c5fa6b822f0bf49bf739a98_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-9728a6297c5fa6b822f0bf49bf739a98_r.jpg" data-caption="" data-size="normal" data-rawwidth="1142" data-rawheight="575" class="origin_image zh-lightbox-thumb lazy" width="1142" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='1142'%20height='575'&gt;&lt;/svg&gt;" data-actualsrc="https://pic1.zhimg.com/v2-9728a6297c5fa6b822f0bf49bf739a98_b.jpg" title="v2-9728a6297c5fa6b822f0bf49bf739a98_r"></figure>
<p class="ztext-empty-paragraph"></p>
<p data-pid="Qs-6SsLU">這樣的 JSON 文件，我們可以丟到 <a href="https://link.zhihu.com/?target=https%3A//chromedevtools.github.io/timeline-viewer/" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">DevTools Timeline Viewer</a> 中，可以看到對應的時間軸和火焰圖：</p>
<p class="ztext-empty-paragraph"></p>
<figure data-size="normal"><noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-c487a4f56f1a903f350e194e8325e156_r.jpg" data-caption="" data-size="normal" data-rawwidth="1280" data-rawheight="689" class="origin_image zh-lightbox-thumb" width="1280" data-original="https://pic3.zhimg.com/v2-c487a4f56f1a903f350e194e8325e156_b.jpg" title="v2-c487a4f56f1a903f350e194e8325e156_r"></noscript><img decoding="async" src="https://hypergrowths.com/wp-content/uploads/2021/11/v2-c487a4f56f1a903f350e194e8325e156_r.jpg" data-caption="" data-size="normal" data-rawwidth="1280" data-rawheight="689" class="origin_image zh-lightbox-thumb lazy" width="1280" data-original="data:image/svg+xml;utf8,&lt;svg%20xmlns='http://www.w3.org/2000/svg'%20width='1280'%20height='689'&gt;&lt;/svg&gt;" data-actualsrc="https://pic3.zhimg.com/v2-c487a4f56f1a903f350e194e8325e156_b.jpg" title="v2-c487a4f56f1a903f350e194e8325e156_r"></figure>
<p class="ztext-empty-paragraph"></p>
<p data-pid="kiNgjBuH"><b>3. Runtime。 </b> <code>Runtime</code> 域通過遠程評估和鏡像物件暴露 JavaScript 的運行時。 可以通過 <code>Runtime.getHeapUsage</code> 獲取 JavaScript 棧的使用方式，通過 <code>Runtime.evaluate</code> 計算全域對象的表達式，通過 <code>Runtime.queryObjects</code> 反覆運算 JavaScript 棧並查找具有給定原型的所有物件（可用於計算原型鏈中某處具有相同原型的所有物件，衡量 JavaScript 記憶體洩漏）。</p>
<p data-pid="L9MWaGhS">除了上面介紹的這些，還有 <code>Network</code> 可以分析網路相關的性能，以及其他可能涉及 DOM 節點、JS 執行等各種各樣的數據分析，更多的可能需要大家自己去研究了。</p>
<h3>### 自動化性能分析</h3>
<p data-pid="85ChM_B1">通過使用 Chrome DevTools 協定，我們可以獲取 DevTools 提供的很多數據，包括網路數據、性能數據、運行時數據。</p>
<p data-pid="FRxVT4ne">對於如何使用該協議，其實已經有很多大神針對這個協定封裝出不同語言的庫，包括 Node.js、Python、Java等，可以根據需要在 <a href="https://link.zhihu.com/?target=https%3A//github.com/ChromeDevTools/awesome-chrome-devtools%23chrome-devtools-protocol" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">awesome-chrome-devtools</a> 這個專案中找到。</p>
<p data-pid="H_tPpY_l">至於我們到底能拿到怎樣的數據，可以做到怎樣的自動化程度，就不在本文里講述啦，後面有機會再開篇文章詳細講講。</p>
<h2># 參考</h2>
<ul>
<li data-pid="BAdMTwtF"><a href="https://link.zhihu.com/?target=https%3A//www.zcfy.cc/article/the-new-chrome-devtool-feature-you-want-to-know-about-3318.html" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">你一定要知道的 Chrome DevTool 新功能</a></li>
<li data-pid="_1E5uUMv"><a href="https://link.zhihu.com/?target=https%3A//juejin.im/post/6844904045774110733" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">前端性能分析利器-Chrome性能分析&amp;性能監視器</a></li>
<li data-pid="vYRT3t1p"><a href="https://link.zhihu.com/?target=https%3A//www.infoq.cn/article/Dxa8aM44oz%2ALukk5Ufhy" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">螞蟻金服如何把前端性能監控做到極致？</a></li>
<li data-pid="_JzcDUBC"><a href="https://link.zhihu.com/?target=https%3A//testerhome.com/topics/15817" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">chrome devtools protocol——Web性能自動化實踐介紹</a></li>
<li data-pid="B1uPEbmx"><a href="https://link.zhihu.com/?target=https%3A//chromedevtools.github.io/devtools-protocol/" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">Chrome DevTools Protocol</a></li>
<li data-pid="itaHWRCb"><a href="https://link.zhihu.com/?target=https%3A//addyosmani.com/blog/puppeteer-recipes/%23measuring-memory-leaks" class=" wrap external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external">Web Performance Recipes With Puppeteer</a></li>
</ul>
<h2># 結束語</h2>
<p data-pid="zgx2I-4o">前端性能分析相關的文章不算多，而由於性能分析本身的場景就跟業務特性結合比較緊密，可以用來借鑒的內容、較統一的解決方案也不多。 而性能的監控、自動化等方向的介紹比較少，也希望這篇文章能給到你們一些方向吧~</p>
<p data-pid="Sxn0O29w">檢視Github有更多內容噢： <a href="https://link.zhihu.com/?target=https%3A//github.com/godbasin" class=" external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external"> <span class="invisible">https://</span><span class="visible">github.com/godbasin</span></a></p>
<p data-pid="cXaQEPZA">你也可以來我的前端遊樂場看看： <a href="https://link.zhihu.com/?target=http%3A//www.godbasin.com/" class=" external" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external"> <span class="invisible">http://www.</span> <span class="visible">godbasin.com/</span></a></p>
</div>
</div>
</div>
</article>
<h3 style="padding: 15px 0; margin-top:30px;">想了解更多關於 Facebook 與 Google 廣告投放？</h3>
<ul>
<li><a href="https://tenten.co/learning/google-ads-vs-facebook-ads/" data-wpel-link="internal" rel="noopener noreferrer">Google Ads 與 Facebook Ads：哪個更適合您的 2022 年廣告策略？</a></li>
<li><a href="https://university.tenten.co/t/adtech-header-bidding/1087/" data-wpel-link="external" rel="nofollow external noopener noreferrer">AD Tech - 廣告科技總整理</a></li>
</ul>
<p>The post <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com/software-engineering/front-end-dev/38109/topic-208449902/" data-wpel-link="internal">補齊Web前端性能分析的工具盲點</a> appeared first on <a rel="nofollow noopener noreferrer" href="https://hypergrowths.com" data-wpel-link="internal">成長駭客交流第一站 - HyperGrowths™</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
