[フロントエンドチュートリアル] Webページを監視するには?

Webページのスタッターを監視するには、FPSから始める必要があります。

FPSはビデオまたはゲームの概念、つまりビデオまたはゲームの流暢さを表す1秒あたりのフレーム数に由来します。

フロントエンド開発の分野におけるWebページのFPSとは何ですか?

WebページのFPSとは何ですか?

Webページのコンテンツは常に変化しており、WebページのFPSは、ブラウザーがこれらの変更をレンダリングするときのフレームレートのみです。フレームレートが高いほど、Webページはユーザーに滑らかに感じられます。

Chromeでは、デベロッパーツールを使用してウェブページのFPSを表示できます

スクリーンショット2018-07-08 at 9.31.06 PM.3edc09e644f6.png

Webページは必ずしも必要ではないことに注意してください。ツールが認識するのは、各更新がFPS値であるということです。

最適なフレームレートは60です。つまり、16.5ミリ秒ごとにレンダリングされます。

ChromeやFirfoxなどのパフォーマンスツールを使用して、ブラウザのフレームレートを表示することもできます。

スクリーンショット2018-07-08 at 9.50.08 PM.1c961c8bd7e4.png

緑のヒストグラムは、ページが再描画されるときのフレームレートを表し、フレームは各フレームのレンダリングにかかる​​時間です。

ウェブページにFPSを与える別の方法

FPS拡張機能はChromeの拡張機能で、現在のWebページのFPS値、つまりページがスタックしているかどうかを表示できます。

スクリーンショット2018-07-08 at 10.02.23 PM.68659bdf8169.png

このツールは、ブラウザー自体とは異なる方法でページFPSを取得します。ブラウザーのネイティブAPI(開発中)を使用しません。この種のツールには、ブラウザーのrequestAnimationFrame API(setInterval polyfillを使用できます)を通じて達成される独自のアプローチがあります。

コードは似ています:

var lastTime = performance.now();
var frame = 0;
var lastFameTime = performance.now();

var loop = function(time) {
    var now =  performance.now();
    var fs = (now - lastFameTime);
    lastFameTime = now;
    var fps = Math.round(1000/fs);
    frame++;
    if (now > 1000 + lastTime) {
        var fps = Math.round( ( frame * 1000 ) / ( now - lastTime ) );
        frame = 0;    
        lastTime = now;    
    };           
    window.requestAnimationFrame(loop);   
}

淘宝網のフロントエンドのチームからの抜粋「:FPSテストワイヤレスパフォーマンスの最適化」

一般的な説明は、requestAnimationFrame APIを使用して一部のJSコードを定期的に実行するため、ブラウザーが動かなくなった場合、レンダリング頻度は十分に保証されないということです。1秒のフレームは60フレームに到達できず、ブラウザーのレンダリングフレームレートを間接的に反映する可能性があります。requestAnimationFrame APIの詳細については、MDNのドキュメントを参照してください

ウェブページを監視するには?

なぜ最初に監視するのですか?たとえば、全国のライブブロードキャストでは、ユーザーがビデオを見たときの経験に注意を払う必要があります。Webページやプレーヤーがフリーズすると、ユーザーが夢中になります。したがって、最適化をガイドするために監視する必要があります。

最後に、この記事のトピックに戻り、スタックしたWebページを監視する方法は?

全国的なライブブロードキャストメソッドを例にとると、FPS拡張機能と同様のメソッドを使用して、WebページのFPS値が1秒あたり1回計算され、データのリストが取得されます。

…6、8、11、29、60、58、46、57、57、57、44、59、51、54、0、31、58、56、41、52、51、17、22、34、51 、48、26、26、49、59、59、59、59、52、52、0、45、58、60、59、60、21…

次に、共通ログチャネルを通じて分析するためにビッグデータプラットフォームに報告します。

それでは、WebページがFPSでスタックしていることを確認するにはどうすればよいですか?吃音に関する私たちの観察によれば、20未満の連続する3つのFPSは、吃音と見なすことができます。

function isBlocking(fpsList, below, last) {
  var count = 0
  for(var i = 0; i < fpsList.length; i++) {
    if (fpsList[i] && fpsList[i] < below) {
      count++;
    } else {
      count = 0
    }
    if (count >= last) {
      return true
    }
  }
  return false
}

もちろん、これは単なる経験ですが、相対的な基準として使用できます。

このようにして、Webページのストールの統計を取得しました。

a.61d8fb124a76.png

次に、Catonの問題のデータサポートを使用してWebページを最適化できます。

サービスの推奨

元の記事を公開0件 ・いい ね0件 訪問数355

おすすめ

転載: blog.csdn.net/weixin_47143210/article/details/105628530