Можно легко измерить реальную пропускную способность канала для пользователей исследуемого сайта. И в том случае, если пользователи загружают страницу существенно медленнее, чем могли бы (учитывая физические ограничения на их канал), возможно, стоит применить меры к исправлению этой ситуации.
Прежде чем давать браузеру любые ссылки на внешние объекты (<img src="...">
, <link rel="stylesheet" href="...">
, <script src="...">
и т. д.), мы можем записать текущее время. После загрузки всей страницы можно будет его вычесть и получить, таким образом, полное время загрузки страницы (за исключением получения HTML-файла и задержек, связанных с первым соединением с сервером). Полученное время можно затем добавить к вызову любого URL (например, картинки), расположенного на вашем сервере.
JavaScript-код для этого будет выглядеть примерно следующим образом:
<html> <head> <title>...</title> <script type="text/javascript"> <!-- var began_loading = new Date().getTime();< window.onload = function(){ new Image().src = '/timer.gif?u=' + self.location + '&t=' + < ((new Date().getTime() - began_loading) / 1000); }; // --> <!-- Здесь будут размещаться ссылки на любые внешние JS- или CSS-файлы, главное, чтобы они шли ниже верхнего блока // --> </head> <body> <!-- Здесь идет обычное содержание страницы // --> </body> </html>
Эта конструкция произведет примерно следующую запись в лог-файл:
127.0.0.1 - - [28/Oct/2006:13:47:45 -0700] "GET /timer.gif?u=http://example.com/page.html&t=0.971 HTTP/1.1" 200 49 ...
В этом случае, как можно понять из записи, загрузка оставшейся части страницы http://example.com/page.html
заняла у пользователя 0,971 секунды. Если предположить, что всего на странице было загружено файлов общего размера в 57842 байтов, 57842 байтов * 8 битов в байте / 0,971 секунды = 476556 битов в секунду (4б5 Кбит). Такова эффективная пропускная способность канала при загрузке этой страницы. Если у пользователя физический входящий канал 1,5 Мб, значит есть большой простор для увеличения скорости загрузки.
После того как будет собрана некоторая статистика по времени загрузки страницы и эффективной ширине канала для реальных пользователей, можно поэкспериментировать с изменениями, которые способны изменить эти показатели к лучшему. В случае значительных улучшений этого показателя стоит закрепить внесенные изменения.