Chromeでのランダムなハイコンテンツのダウンロード時間?

境界

Chromeではランダムに時間がかかるAPIがありますcontent download。Firefoxでは常に正常に動作し、わずか数回しかかかりませんms応答サイズは、非圧縮で20kb、圧縮で4kbです。同じリクエストは、curlを使用しても正常に機能します。

私たちが試したこと:

  1. 無効If-None-Matchブラウザから無効キャッシュ応答にヘッダを。
  2. さまざまな圧縮(gzip、deflate、br)を試します。
  3. 圧縮を無効にします。
  4. すべてのChrome拡張機能を無効にします。

同じリクエストがChromeで正常に機能することもありますが、コンテンツのダウンロード時間が非常に長くなります。

この問題の根本的な原因を理解することはできません。今回最小化するために試みることができる他のことは何ですか?

Chromeネットワークタブ

I made three requests here and the 3rd one took the most time (before the last spike). CPU does not seem to be maxing out for a longer period of time. Most of the time is idle time.

パフォーマンスグラフクローム

Also, When replaying the call using Replay XHR menu, the Content download period drops from 2s to 200 ms.

JK Slyby

Are you by chance trying to implement infinite scrolling? If you are, try dragging the scroll bar instead of using the mouse wheel. For some reason, Chrome seems to struggle with mouse scroll events. If the scroll bar worked just fine, keep reading.

This post provides a detailed walkthrough of someone experiencing something similar - https://github.com/TryGhost/Ghost/issues/7934

I had attached a watcher on the scroll event which would trigger an AJAX request. I had throttled the request and could see that only 1 was being sent. I watched my dev server return the response within a few ms but there would be a 2 second delay in chrome. No render, no api calls, no and scripts executing. But the "Content Download" would take 3 seconds for 14kb. No other browser had this issue.

I stumbled upon suggestions that using requestAnimationFrame instead of setTimeout would solve the problem. That approach seems that approach works when the "Waiting" or green is significant, not so much for the "Content Download" or blue.

After hours of digging, I tried conditionally calling e.preventDefault() on the mousewheel event and to my amazement, it worked.

A few things to note:

1) I did not use the mousewheel event to make the api call. I used the scroll event along with throttling.

2) The mousewheel event is non-standard and should not be used. See https://developer.mozilla.org/en-US/docs/Web/Events/mousewheel

3) BUT in this case, you have to watch and handle the mousewheel event because of chrome. Other browsers ignore the event if they don't support it and I have yet to see it cause an issue in another browser.

4)preventDefault()マウスでのスクロールが無効になるため、毎回呼び出す必要はありません:)deltaY垂直スクロールを使用している場合が1の場合にのみ呼び出します。添付の画像から、deltaY基本的にスクロールできなくなったときに1であることがわかります。mousewheelページをスクロールできない場合でもイベントが発生します。注意点として、deltaXある-0あなたが垂直方向にスクロールしているときdeltaYである-0水平にスクロールしたとき。

私の解決策:

window.addEventListener("mousewheel", (e) => {
    if (e.deltaY === 1) {
        e.preventDefault();
    }
})

それは私が仕事を見た唯一の解決策であり、他の場所で言及されたり議論されたりしたことはありません。それがお役に立てば幸いです。

マウスホイールイベントのコンソールログ

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Chromeやその他の主要なブラウザでは、「コンテンツのダウンロード」に時間がかかりすぎる場合があります

特定のコンテンツタイプなしでファイルをダウンロードする方法

Flutterでのドラッグダウン時のコンテンツのスケーリング

Confluenceページコンテンツのダウンロード

Vueのaxios力PDFのダウンロードコンテンツなし

jQuery-Textareaコンテンツのダウンロード

awsログイン情報のみでpemキーなしのEC2インスタンスコンテンツをダウンロードします

WebAPIでのファイルダウンロードのコンテンツネゴシエーション

UbuntuISOのダウンロード時間

sphinx doc: sphinx イベント ハンドラー内で動的な最初のコンテンツをレンダリングする方法は?

ダウンロード可能なコンテンツのウェブサイトにamazons3を使用する

MySQLのコンテンツでPHPを使用したランダムグリッドレイアウト

Javaの11 `HttpClient`ダウンロードではなく?(負のコンテンツ長)

ファイルのダウンロード用にJavaでコンテンツタイプを設定する

コンテンツタイプtext / htmlのファイルをダウンロードできません

ハンバーガーのドロップダウンがヒーローの画像コンテンツと重なっている

プログラムで生成されたエキスパンダーで、スクロール可能なコンテンツのサイズをウィンドウに変更

DOMのページ読み込み時にレンダリングされないドロップダウンコンテンツを選択します

Zurb Foundation 5のドロップダウン(ナビゲーションバーとデータコンテンツ)時々(そしてランダムに)クリックに応答しない

NodeJSでDropboxファイルのコンテンツをダウンロードする

同じ名前のファイルでAzureBLOBコンテンツをダウンロードする方法

ループしていないページのリロード時にコンテンツをランダム化する

awsYamlでコンテンツをダウンロード

反応のコンテンツボタンをダウンロード

コンテンツプロバイダーでのGreenDAOの使用

完全にスクロール可能なウィンドウコンテンツのxtermダンプ

再びRマークダウンでドイツのウムラウト

Googleドライブのダウンロードのコンテンツの長さを取得するにはどうすればよいですか?

コンテンツ別のドロップダウンメニューの幅

TOP 一覧

  1. 1

    グラフからテーブルに条件付き書式を適用するにはどうすればよいですか?

  2. 2

    ソートされた検索、ターゲット値未満の数をカウント

  3. 3

    Unity:未知のスクリプトをGameObject(カスタムエディター)に動的にアタッチする方法

  4. 4

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  5. 5

    Ansibleで複数行のシェルスクリプトを実行する方法

  6. 6

    Reactでclsxを使用する方法

  7. 7

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  8. 8

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  9. 9

    Pythonを使用して同じ列の同じ値の間の時差を取得する方法

  10. 10

    PowerShellの分割ファイルへのヘッダーの追加

  11. 11

    Chromeウェブアプリのウェブビューの高さの問題

  12. 12

    BLOBストレージからデータを読み取り、Azure関数アプリを使用してデータにアクセスする方法

  13. 13

    Crashlytics:コンパイラー生成とはどういう意味ですか?

  14. 14

    GoDaddyでのCKEditorとKCfinderの画像プレビュー

  15. 15

    Windows 10の起動時間:以前は20秒でしたが、現在は6〜8倍になっています

  16. 16

    MLでのデータ前処理の背後にある直感

  17. 17

    モーダルダイアログを自動的に閉じる-サーバーコードが完了したら、Googleスプレッドシートのダイアログを閉じます

  18. 18

    reCAPTCHA-エラーコード:ユーザーの応答を検証するときの「missing-input-response」、「missing-input-secret」(POSTの詳細がない)

  19. 19

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  20. 20

    ファイル内の2つのマーカー間のテキストを、別のファイルのテキストのセクションに置き換えるにはどうすればよいですか?

  21. 21

    ネットワークグラフで、ネットワークコンポーネントにカーソルを合わせたときに、それらを強調表示するにはどうすればよいですか?

ホットタグ

アーカイブ