Как измерить время рендеринга веб-приложения, использующего динамические асинхронные вызовы для загрузки страницы? - PullRequest
0 голосов
/ 16 мая 2011

Я пытаюсь измерить производительность веб-приложения, которое в настоящее время загружается очень медленно.(Необходимо установить базовый уровень для будущих улучшений.) Проблема, с которой я сталкиваюсь, заключается в том, что инструменты, которые я обычно использую, измеряют время загрузки HTML-документа и / или время, необходимое для запуска события onLoad.В данном конкретном случае ни один из них не кажется подходящим - поскольку страница HTML практически пуста и загружается за <1сек.</p>

В настоящий момент блокировщик представляет собой динамический POST-файл json, который запускается при загрузке страницы (не спрашивайте), но, поскольку он запускает асинхронный режим, нет способа использовать его для измерения, когда он завершен, кроме просмотраFirebug (который не очень масштабируем или не прост в автоматизации).

Любая помощь, полученная с благодарностью.

[Редактировать] Я действительно ищу что-то, что может быть запущено как услуга -если бы Pingdom мог делать то, что я хотел, это было бы прекрасно.Проблема в том, что время, которое я ищу, основано на зависимом запросе, а не на исходном запросе HTML-страницы, и я не могу найти инструмент, который бы сделал это для меня.

Ответы [ 2 ]

2 голосов
/ 16 мая 2011

Есть ли что-то, что вы можете проверить в каждом возврате ajax или в коде рендеринга, который использует возврат ajax? Если это так, просто настройте простой опрос, чтобы увидеть, все ли они визуализированы. Идентификаторы элементов или уникальные выражения xpath могут быть вашими друзьями во время тестирования.

Из любопытства вы используете Selenium? Профилировщик YUI? Просто козел?

0 голосов
/ 16 мая 2011

Вы можете очень просто получить время загрузки Ajax-запросов с помощью Javascript:

var start = +new Date(); // Yeah, that's not a typo
// ajax request
complete: function() {
  // do response stuff
  var rtt = +new Date() - start; // rtt in milliseconds
  // or do response stuff here
}
// ajax request

Это то, что вы искали?

Что вы хотите с ним сделать?Отправить его обратно на сервер?=)

Если вы используете библиотеку, она может быть встроенной. Если вы используете библиотеку, а она не встроена, вы можете сделать это самостоятельно с помощью события start (обычно оно есть)и конечное событие (обычно «завершено»).

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