問題タブ [navigation-timing-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
html - WebTiming API の誤った値
新しいW3C 仕様で指定されたChromeおよび IE 9を通じて公開された新しいwebTiming APIを使用しています。
何らかの理由でloadEventEnd
as を取得してい0
ます。これにより、実際のロード時間の計算が制限されています。
ここに出力とコードがあります
コード:
誰かが何が悪いのかを理解するのを手伝ってくれますか?
javascript - サイトのクライアント側パフォーマンスの監視
ページのクライアント側のパフォーマンスを監視したいのですが、セクションの先頭でタイマーを開始し、onload イベントが発生した時刻を取得することで、ページの読み込み時間を取得できます。ただし、サーバーからページをリクエストするのにかかる時間は考慮されていません。検索した結果、Web タイミング API を使用する必要があることがわかりました。私の問題は、「window.performance」はクロムでは機能しますが、「window.mozPerformance」を含むFirefoxでは何も機能しないことです。それで、ブラウザがページの取得リクエストを開始し、ページの最後のバイトの受信を終了する時間を見つける方法を知っている人はいますか?
javascript - パフォーマンスAPIを介したサイトの読み込み時間の測定
数日前にSteveSoudersの話を聞いたところ、彼は新しいブラウザが実装している新しいパフォーマンス仕様について言及しましたが、それは非常に興味深いものでした。彼のスピーチの中で、彼は知覚されたページの読み込み時間を測定する手段として次の例に言及しました。
明らかにこれは基本的な例ですが、開発環境で試してみると、loadEventEndが0未満であるため、答えとして-1238981729837のようなクレイジーな数値が得られます。
明らかに何かが間違っており、より多くの情報を提供し、より高い信頼性を生み出すために、この例に加えることができる多くの改善があります。(私はこれがいくつかのブラウザでのみ実装されていることを知っています)。
では、このAPIを使用して、サイトのパフォーマンスを分析するためにJavascriptを介してページの読み込み時間を追跡する方法についての提案は何ですか?
javascript - iframe で新しい JavaScript performance.timing API を使用していますか?
私は新しい performance.timing JavaScript API で遊んでいて、かなり感銘を受けました。
ここに良い説明があります http://www.html5rocks.com/en/tutorials/webperformance/basics/
これには、世界中のテスターがダブルクリックして、世界中のさまざまな場所から私たちのサイトのたとえば 20 個の URL のパフォーマンスを取得できる単純なページを作成する必要があるという重要な使用例があります。
私たちのサイトは HTML5 ではないので、このようなものをページに直接埋め込むことはできません (1 か月に 10 億ページあるので、それほど多くのデータは必要ありません)。したがって、私の基本的な計画は、iframe に 20 個の URL をロードするスクリプトを含む単純な「ラッパー」HTML ページです。ええ、私は知っています!iframe は最悪ですが、これはきれいである必要はなく、単に効果的です!
Javascript は私の得意分野ではありません。したがって、独立した iframe ごとにこのデータを取得する方法について助けが必要です (もちろん、実証済みの方法がある場合は、他の方法論を聞くことに興味があります)。
それがどのように機能するかを非常に簡単に説明するために(これまでのところChromeとIE9のみだと思います)
編集:
@ Mawi12345 のアイデアを使用して、次のことを試みています。
html - HTML5 Navigation Timing API の使用時に navigationStart 時間が 0 に設定される
HTML5 Navigation Timing API を使用して、サイトでユーザーが認識したページの読み込み時間を測定しています。
次のコードを使用して、ページの読み込み時間を測定しています。
time
変数は Cookie にも追加され、ユーザーによる後続のリクエストでサーバーに記録されます。
記録された時間が現在のエポック時間に非常に近い、つまりnavigationStart
0 に設定されloadEventEnd
ているがゼロ以外の値 (つまり現在のエポック時間)であるという問題に直面しています。
Chrome/11.0、Chrome/12.0、MSIE 7.0、MSIE 8.0、および MSIE 9.0 でこの動作を確認しました。
navigationStart
が 0 より大きい場合にのみロード時間を記録するように上記のコードを変更することで、これを一時的に解決しました。ただし、提供されたすべてのページのロード時間を記録したいと考えています。
javascript - Opera と Safari での Navigation Timing API の実装
ナビゲーションに関するクライアント データ、つまりページの応答時間とナビゲーション タイミング API にあるその他のデータ パラメータをキャプチャする必要がありますが、それを行うことができるのは firefox と chrome のみです。SO Safari と Opera でそれらを取得する方法、またはそうするために実装できる代替メカニズムを誰かに教えてもらえますか。
javascript - シングル ページ アプリで Ajax イベントにブラウザー ナビゲーション タイミング API を使用できますか? そうでない場合、良いツールは何ですか?
サーバーへの Ajax 呼び出しを行い、複雑なデータ キャッシュと DOM レンダリングを実行する Knockout と Backbone で構築された単一ページ アプリがあります。ユーザーから見たパフォーマンスを測定する (そしてサーバーに記録する) ことが本当に好きです。ブラウザのNavigation Timing APIがこれに役立つかどうかについて、頭を悩ませているようには見えません。例からわかるように、Navigation Timing API は関連付けられてwindow.performance
おり、これはページの読み込みに限定されており、Ajax の動作の監視には適していません。正しいか間違っているか?false の場合、他に何を使用できますか?
サーバーの結果で何らかの DOM レンダリングを行う Ajax 呼び出しなど、時間を測定するためのカスタム インストルメンテーション ポイントを設定したいと考えています。
time - HTTPリクエストの最後のバイトがWebサーバーに到達した時間を見つける方法
Java を使用して、Http 要求の最終 (最後の) バイトが Web サーバーに到達した時刻を見つけたいと考えています。いくつかの事前定義された属性を持つ Navigation Timing API を使用して JavaScript を使用してみました。
しかし、私はJavaを使用して欲しいです。
javascript - Navigation Timing API イベントが順番に起動しない
Navigation Timing API を使用して、ページから読み込みイベントを取得しています。情報を出力するために、以下に JS のスニペットを追加しました。1つおかしいことに気がついたのは、コンソールを確認しloadEventEnd
た時間よりも早く時間が戻ってきたことです。loadEventStart
私はそれが可能であってはならないと思うでしょう。
google-chrome - In which Navigation timing stage webpage get displayed?
The performance.timing
stores the timing of the various events' that happen during the webpage loading:
(source: dvcs.w3.org)
And I learned that HTML tags get parsed and <script>
elements with neither 'defer' nor 'async' attribute get executed synchronously between domLoading
and domInteractive
, and then scripts with 'defer' attribute(i.e., scripts in list of scripts that will execute when the document has finished parsing) get executed before DOMContentLoaded
. And then execute <script>
element with async
attribute, if there is any, before document.readyState
is set to complete
and load
event fired on the Window object.
Spin the event loop until the set of scripts that will execute as soon as possible and the list of scripts that will execute in order as soon as possible are empty.
My question is when the webpage contents get displayed? Are they displayed at the same time when HTML tags are parsed? or in the scripts execute phase? or after loadEventEnd
?
When load a large page, the loading icon still spins for a while after the page get displayed, Is the browser executing scripts during this time?