Netlifyの最適化
5346 ワード
私はNetlifyでは動作しませんが、1つのページのアプリケーションの負荷時間を改善する方法を示します.
ログインするhttps://netlify.com .
あなたはhttps://app.netlify.com ログイン後.これは最適化されるスパです.
<高橋潤子>
絹篩で篩うたよう
確認する
録音を開始し、ページをリフレッシュします.ページが読み込まれたときに録音を停止します.私たちはDevToolsは、タイムラインを表示するために分離モードで開きます.
ネットワークセクションの詳細については、ネットワークコールのように見えます
DevToolsのネットワークパネルに行って詳細を確認します
さて、両方の呼び出しの呼び出しスタックをチェックします.
両方の呼び出しスタックは、1つの違いとかなり類似しているように見えます.
私たちは幸運なNetlifyはソースマップをパブリックで有効にしています.
第一
二番目
今タイムラインに戻って、私はアプリの負荷時間を改善するための機会を参照してください.
メインスレッドのようなルックスは、ネットワークコールが行われている間はあまり行われません.現在のプロセスはシリーズにあります:JavaScriptが走るこのコードはいくつかのネットワーク呼び出しを作ります.ネットワークコールは別のスレッドでブラウザで処理されるので、パラレルでこれらを行うことができます.
これを行うには通常、コードをビルドするためのソースが必要ですがChrome Local Overrides .
メインHTMLファイルがあります
私はAPIコールを短絡する場所を見つけました
これを更新
そして、それは動作します、我々は現在、主なJavaScriptコードが走るように、平行にページの始めでAPI呼び出しをします.
しかし、アプリケーションのレンダリングをブロックしている2つ以上のネットワークコールは、同じ方法でそれらを最適化しましょう.
我々は今、忙しいメインスレッド、ネットワークコールとJavaScriptコードを並列に実行されている.
私のシステムとネットワークのために、私はアプリの負荷時間の約40 %の削減を2000 msから1200 msまで見ることができました.
これは、Webパックのようなバンドルシステムを使用してスパで一般的なシナリオです、APIの呼び出しは、コードが実行された後に行われます.初期APIの呼び出しは、Webアプリケーションの多くのためのアプリケーションの負荷時間を改善するための簡単な方法です.
ログインするhttps://netlify.com .
あなたはhttps://app.netlify.com ログイン後.これは最適化されるスパです.
<高橋潤子>
絹篩で篩うたよう
Performance
パネル確認する
Screenshot
オプションを選択すると、アプリケーションが読み込まれたときにチェックするのに便利です録音を開始し、ページをリフレッシュします.ページが読み込まれたときに録音を停止します.私たちはDevToolsは、タイムラインを表示するために分離モードで開きます.
ネットワークセクションの詳細については、ネットワークコールのように見えます
api.netlify.com/api/v1/user
が複製される.api.segment.io/v1/p
も複製されますが、それはあまり面白くありません.DevToolsのネットワークパネルに行って詳細を確認します
user
API.さて、両方の呼び出しの呼び出しスタックをチェックします.
両方の呼び出しスタックは、1つの違いとかなり類似しているように見えます.
- App.js:432
+ App.js:459
同じファイルの行が異なる:私たちは幸運なNetlifyはソースマップをパブリックで有効にしています.
第一
useEffect
は、この時間では初めてアプリの負荷を実行するためのものですuserId
が定義されていない.二番目
useEffect
が再び実行されますuserId
が定義されていない.しなければなりません.useEffect(() => {
if (userId) {
load(props);
}
}, [userId]);
これはAPI呼び出しが2回行われるのを修正します.今タイムラインに戻って、私はアプリの負荷時間を改善するための機会を参照してください.
メインスレッドのようなルックスは、ネットワークコールが行われている間はあまり行われません.現在のプロセスはシリーズにあります:JavaScriptが走るこのコードはいくつかのネットワーク呼び出しを作ります.ネットワークコールは別のスレッドでブラウザで処理されるので、パラレルでこれらを行うことができます.
これを行うには通常、コードをビルドするためのソースが必要ですがChrome Local Overrides .
メインHTMLファイルがあります
overview
とメインjsファイルapp.bundle.js
私のローカルコピーで上書きされます.私はAPIコールを短絡する場所を見つけました
user
:これを更新
user() {
return window.userPromise || this.request('/user');
}
ここで定義しますwindow.userPromise
メインAPIファイルでは、このAPIの呼び出しができるようにします.私たちは新しい<script>
タグを追加/user
APIはローカルストレージから正しいアクセストークンを呼び出します.そして、それは動作します、我々は現在、主なJavaScriptコードが走るように、平行にページの始めでAPI呼び出しをします.
しかし、アプリケーションのレンダリングをブロックしている2つ以上のネットワークコールは、同じ方法でそれらを最適化しましょう.
我々は今、忙しいメインスレッド、ネットワークコールとJavaScriptコードを並列に実行されている.
私のシステムとネットワークのために、私はアプリの負荷時間の約40 %の削減を2000 msから1200 msまで見ることができました.
これは、Webパックのようなバンドルシステムを使用してスパで一般的なシナリオです、APIの呼び出しは、コードが実行された後に行われます.初期APIの呼び出しは、Webアプリケーションの多くのためのアプリケーションの負荷時間を改善するための簡単な方法です.
Reference
この問題について(Netlifyの最適化), 我々は、より多くの情報をここで見つけました https://dev.to/atfzl/optimizing-netlify-k6iテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol