PHP を使用して Web ページの完全なダウンロード時間を計算したいと考えています。
CURL を使用することは可能ですが、HTML ソースのダウンロード時間を計算するだけなので、ページ上の JS、画像などのすべての要素を計算することはできません。
ハイパースピンのようなものをプログラムしたいのですが、ウェブブラウザのように振る舞う方法はありますか? YSlow や hyperspin のようなものを意味します。
PhantomJS (ヘッドレス WebKit)をご覧ください。
var page = require('webpage').create(),
t = Date.now();
page.open('http://twitter.com/marcelduran', function (status) {
t = Date.now() - t;
console.log(t + 'ms');
phantom.exit();
});
私はこれを (かなり正確に) cURL リクエストを送信し、最初のバイトをダウンロードし、所要時間を計算してから、ダウンロードするバイトの合計量を掛けることで達成しました。
JS と画像に関しては、そのためのライブラリを作成するだけで済みます (または、既に利用可能なものが存在する可能性があります)。