Как я могу изменить свой код, чтобы иметь возможность рассчитывать различные URL-адреса вместо текущей страницы - PullRequest
0 голосов
/ 16 октября 2019

Я пытаюсь рассчитать время загрузки и размер страницы для разных URL / страниц, похожих на вкладку производительности инструментов разработчика, но в javascript. Но текущий код только вычисляет свою текущую страницу вместо другого URL. Можно ли мне это сделать, потому что в моих исследованиях мне не повезло.

<html>
<head>
  <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
  <meta http-equiv="Pragma" content="no-cache">
  <meta http-equiv="Expires" content="0">
<script type="text/javascript">

var start = new Date().getTime();
function onLoad() {
  var now = new Date().getTime();
  var latency = now - start;
  alert("page loading time: " + latency+"\n"+"Start time:"+start+"\n"+"End time:"+now);
  alert("Load_size:"+document.getElementsByTagName("html")[0].outerHTML.length + "KB");
}

</script>
</head>
<body onload="onLoad()">
<!- Main page body goes from here. -->
</body>
</html>

Ответы [ 2 ]

1 голос
/ 16 октября 2019

Невозможно прочитать параметры времени выполнения страницы за пределами страницы, на которой запущен JavaScript.

Часть модели безопасности состоит в том, чтобы избежать возможности проверки времени выполнения других страниц. Это называется «песочница». Вам нужно будет создать плагин, который разбивает песочницу для проверки domLoad / domReady и других событий производительности.

Хорошая новость, хотя, вероятно, у вас есть встроенный! Консоль для современных браузеров отображает все эти события на вкладке временной шкалы.

Если вы пытаетесь создать службу, которая пытается оценить время выполнения других страниц, вам необходимо загрузить их в виртуальной сети. браузер на сервере и интерпретировать результаты, используя селен или что-то подобное.

0 голосов
/ 16 октября 2019

Вы можете попробовать это, чтобы рассчитать время загрузки страницы:

<script type="text/javascript">
             $(document).ready(function() {
                 console.log("Time until DOMready: ", Date.now()-timerStart);
             });
             $(window).load(function() {
                 console.log("Time until everything loaded: ", Date.now()-timerStart);
             });
        </script>

edit: это будет работать только на страницах, где будет выполняться этот код JS, поэтому, если вы не можете вставить код на страницу, которую выне сможет его запустить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...