32
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Webサイトで画面がちらつく(フラッシングする)原因をChrome Developer Toolsで探す方法

Posted at

概要

  • ふと気づいたら自社のサービスの画面が読み込み時に一瞬真っ白になる、ちらつく現象が発生するようになっていいた
  • いつから発生するようになったのかわからず、コミットログも多く、原因特定に苦労した
  • Google Chrome Developer Tools を使用して、原因を絞り込み、無事検索キーワードを入手した話。

使うもの

本当にちらついているか確認する

ちらついているような気がするでは、本当に調査が必要なのかどうか、徒労に終わらないようにするために、
画面がちらついていることを確認します。

  1. Developer Tools を起動します
  2. 右上のメニューからMore Tools → Renderingを選択します
    image
  3. Consoleタブの隣にRenderingタブが表示されるので、そこのPaint Flashingをチェックします。
    image
  4. Netowrokタブに移動し、ビデオカメラアイコンをクリックしオンにします。
  5. ⌘+Rキーをクリックすると画面がリロードされてネットワークがキャプチャーされます。
    image
  6. 画面上部に画面読み込みと描画に合わせてスクリーンキャプチャーされます。

参考に乗せた画面を見ていただくと、真っ白になっている箇所があるのがわかります。
間違いなく、真っ白に一回なってから再描画されていることを認識できます。

犯人を特定する

  1. Timelineタブに移動します。
  2. 画面上部の歯車のアイコンをクリックしオプションを表示します。Disable JavaScript SampleとEnable advanced paint instrumentation(slow)にチェックを入れます。
    image
  3. ⌘+Rキーをクリックすると画面がリロードされてTimelineがキャプチャーされます。
    • たまに画面キャプチャーがうまくいかないことがあるので、その場合は何度か⌘+Rキーを試行してください
  4. キャプチャーを参考に画面が白くなる時間帯に絞り込みをかけます。
    image
  5. なにやら、analytics.jsてのが見えます。ちなみにこの例では、もう少し範囲を広げるとtag.jsも見えます。

犯人をググると。。。

例えばGoogleアナリティクスのウェブテスト(A/Bテスト)機能がこれに当たります。ウェブテストのタグは、ページが表示される前にJavaScriptの処理が完了していないと、ユーザーに画面がちらついて見えるといった違和感を覚えさせる要因となります。

しかし、このセットアップでは非同期処理を行っているため、「ちらつき」や、「フラッシング」の可能性は依然として残っています。

弊社でまさにA/Bテストやタグマネジャーを使用していたので、利用をやめたら無事にちらつきがなくなりました。

32
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32
26

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?