Январь 26, 2018
Вывод в консоль JavaScript времени выполнения скриптов на странице (как инлайновых, так и подключаемых).
Примечание: многие js скрипты выполняются отложенно, после загрузки всей страницы, время выполнения таких скриптов с помощью этого метода не вывести.
namespace Test;
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandlerCompatible('main', 'OnEndBufferContent', '\Test\TestJs::AddConsoleTimeOutput');
class TestJs
{
function AddConsoleTimeOutput(&$content)
{
$content = preg_replace_callback(
'/(<script[^>]*>)(.*?)(<\/script>)/si',
function($matches)
{
$consoleOut = str_replace('\'','"',$matches[1]);
return '<script>console.time(\''.$consoleOut.'\');</script>'.$matches[0].'<script>console.timeEnd(\''.$consoleOut.'\');</script>';
},
$content
);
}
}