На основании ответов @Mr. Shiny и @Georg Schölly, полный и прокомментированный пример.
Чтобы протестировать, просто скопируйте и вставьте приведенные ниже коды в том же порядке, в пустой .html, .php или другой совместимый файл.
Перед запуском get запишите текущее время Javascript.
Используя new Date()
, мы создаем новый объект даты с текущей датой и временем.
<script type="text/javascript">
var startTime = new Date();
Теперь давайте создадим изображение объекта html, все еще без источника, и приписываем его переменной img.
var img = new Image();
Следующий спет помещает источник в изображение. .Src отражает атрибут src html.
Важный! Направьте ваш img.src на очень маленький и легкий файл изображения, если это возможно, размером менее 10 КБ.
Для предотвращения кеширования случайный параметр был добавлен в конец файла после расширения .png.
var random_string = Math.random().toString();
img.src = "http://static.bbci.co.uk/frameworks/barlesque/5.0.0/orb/4/img/bbc-blocks-dark.png" + "?" + random_string;
Теперь мы можем вызвать нашу функцию, которая будет работать только при загрузке изображения, потому что .onload:
img.onload = function() {
var endTime = new Date();
var ping = endTime. getTime() - startTime.getTime();
alert(img.src + " loaded in " + ping + " ms");
}
</script>
Внутри функции у нас есть переменная endTime, которая получает дату и время после загрузки исходного изображения.
Наконец, переменная ping получает начальное время минус последнее время.
Во всплывающем окне с предупреждением отображается результат.