ASP.NETページのパフォーマンスを測定しています。2つの部分を測定する必要があります:1)サーバーページの読み込み時間(データベースから読み込まれたデータからコントロールをバインドするのにかかる時間を計算するため)と2)サーバーのPageLoadイベントが開始したミリ秒とクライアントの読み込みが完了しました(クライアントブラウザがHTMLをダウンロードしてレンダリングするのにかかった時間を計算できるようにしたいため)。
StopWatchクラスを使用すると、サーバー側の読み込み時間を簡単に測定できます。アドバイスが必要なのは、クライアントがロードした日時をキャプチャすることです。
これが私がこの順序で行っていることです:
- サーバーページの読み込みイベントが実行されるとすぐに、現在の日付と時刻を非表示のフィールドに書き込みます。
- クライアントで
$(document).ready()
は、サーバーの日付と時刻を返すWebMethodへのAJAX呼び出しを開始するために使用します。 - 次に、非表示フィールドに格納されている日付文字列とWebmethod呼び出しから返された日付文字列から日付と時刻を解析し、それらの違いを
span
ページ上の要素に書き込みます。
これを行うのは、誰かのマシンの時刻が数秒で簡単にずれてしまう可能性があるため、クライアントの日時をサーバーの日時と同期させることができるようにするためです。ただし、AJAX呼び出し自体が少しオーバーヘッドを追加し、パフォーマンス測定に逆効果になると思います。
GMTを使用して、サーバーに報告せずにクライアントの時刻をサーバーの時刻と同期させる正確な方法はありますか?