Время выполнения js скриптов на странице

Январь 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
        
);
    }
    
}

← Переход к списку